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

SpringMVC拦截静态资源的解决方案

2017-08-27 12:14 197 查看

问题bug:

在使用SpringMVC来部署web项目时,在访问静态资源的时候,我们经常会出现404资源未找到的问题。

原因:

这是因为其中的DispatcherServlet会对静态资源进行拦截,导致了静态资源无法访问。

解决方案:

方案一、在web.xml中设置defaultServlet,注意这个配置需要DispatcherServlet拦截的前面,才能起到提前拦截的效果。

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<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>*.png</url-pattern>
</servlet-mapping>


其中default是Tomcat的默认servlet名称,如果是其他是服务器可以去查查相关默认servlet名称。

方案二、在springmvc配置文件中配置resource

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


其中location是静态资源目录的路径,mapping是映射到ResourceHttpRequestHandler进行处理。

方案三、在SpringMVC为静态资源配置默认servlet处理器(这是我经常使用的方法)

<mvc:default-servlet-handler/>


参考文章:http://lzy83925.iteye.com/blog/1186609
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  bug spring mvc web.xml