Spring MVC禁止对CSS,JS,IMAGE等静态资源过滤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC禁止对CSS,JS,IMAGE等静态资源过滤相关的知识,希望对你有一定的参考价值。
参考技术A 在使用Spring MVC时,我们默认对过滤器是这样子设置:
<code>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</code>
这样的后果就是会对所有的资源一起过滤了,导致我们的jsp中的图片,js,css什么都加载不出来。如图所示:
所以只要我们在spring-web.xml(你配置你的Spring-MVC的配置文件中添加):
<code>
<mvc:resources location="/WEB-INF/jsp/css/" mapping="/css/ " />
<mvc:resources location="/WEB-INF/jsp/fonts/" mapping="/fonts/ " />
<mvc:resources location="/WEB-INF/jsp/images/" mapping="/images/ " />
<mvc:resources location="/WEB-INF/jsp/js/" mapping="/js/ "/>
</code>
有些人可能不知道路径怎么写,可以参考我的:
现在设置后看看资源还有没有被拦截:
很好没被拦截了!
Spring MVC 拦截 js,css,png 等资源
springMVC的<mvc:resources mapping="***" location="***">标签是在spring3.0.4出现的,主要是用来定义对静态资源的访问。
上网搜了一下跟这个配置相关的文章,大多推荐用下面这种。可是,用这种的话,如果有一个新目录,就得新增一条配置,比较麻烦。
<!-- For static resources --> <mvc:resources mapping="/image/**" location="/images/" /> <mvc:resources mapping="/js/**" location="/js/" /> <mvc:resources mapping="/css/**" location="/css/" /> <mvc:resources mapping="/html/**" location="/html/" /> <mvc:resources mapping="/software/**" location="/software/" />
下面这种是直接根据静态文件的后缀来配置的,比较通用,不用为每个子目录配置一个:
<mvc:resources location="/" mapping="/**/*.html"/> <mvc:resources location="/" mapping="/**/*.js"/> <mvc:resources location="/" mapping="/**/*.css"/> <mvc:resources location="/" mapping="/**/*.png"/> <mvc:resources location="/" mapping="/**/*.gif"/>
(原创文章,转载请注明转自Clement-Xu的csdn博客。)
版权声明:本文为原创文章,转载请注明转自Clement-Xu的csdn博客。
来源:http://blog.csdn.net/tlin2011/article/details/45482463
spring mvc 配置为:
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
时,当直接访问png,jpg等资源时,也会拦截, web.xml 加入如下配置 则web服务器会处理,不会被spring 拦截
亲测:
<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>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.png</url-pattern>
</servlet-mapping>
另外: 不知为何加入<mvc:resources mapping="/images/**" location="/images/" /> 可以访问资源,但是访问不了 controller了
以上是关于Spring MVC禁止对CSS,JS,IMAGE等静态资源过滤的主要内容,如果未能解决你的问题,请参考以下文章
spring mvc访问静态资源的问题, .js .jpg .css
Spring MVC - 包含静态文件/javascript、css