您的位置:首页 > 编程语言 > Java开发

Spring MVC 读取静态资源时404错误

2015-06-29 16:38 597 查看
背景:web.xml配置时拦截策略是拦截所有请求:

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc-servlet.xml</param-value>  //对拦截对象的处理
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>  //拦截所有请求
</servlet-mapping>


解决步骤:

1、把静态资源放在项目根目录webroot下,,不放在WEB-INF下

2、增加配置,过滤对静态资源的拦截:(以下二选一,前者效率较高,但每种资源都要配置一个servet-mapping;而后者较灵活)

方法一、在web.xml中增加如下配置:

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>


方法二、或者在springmvc-servlet.xml中增加如下配置(以css文件为例):

<mvc:resources location="/css/" mapping="/css/**" />


特别地,通过如下这条配置可以访问所有资源

<mvc:resources location="/" mapping="/**"/>


通过以上方法,就可以解决访问静态资源时报404的问题,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: