关于Springmvc 处理静态资源的问题
最近使用springmvc+bootstrap搭建框架,过程真的是苦不堪言啊,先说遇到的问题吧:
使用myeclipse6.5 的话,在处理静态资源访问的时候基本没遇到什么问题,所以也就以为没问题呢,后来换了myeclipse8.5或者以上的IDE时才发现静态资源的访问出现了问题。好了,前提说完了,那下面列举问题情况吧。
在web.xml中配置springmvc如下:
<servlet>
<description>springMVCservlet</description>
<servlet-name>springMvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<description>springMVC 配置文件</description>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:configs/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置spring mvc mapping 1处 -->
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--tomcat 默认的servlet 2处-->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.json</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.ico</url-pattern>
<url-pattern>*.doc</url-pattern>
<url-pattern>*.docx</url-pattern>
<url-pattern>*.xls</url-pattern>
<url-pattern>*.xlsx</url-pattern>
<url-pattern>*.txt</url-pattern>
</servlet-mapping>
关键的配置就在上面了。对应的标了1处和2处,下面就直接说问题吧(正常的情况就不说了),
1、使用myeclipse6.5:2处有没有根本没影响。
使用myeclipse8.6或者以上版本,2处对应的url没有的话就访问不到,比如访问css文件,你就要配置对应的url。
2、经过我的实验,对于myeclipse6.5,只要在1处配置了url拦截为".XXX"而不是"/",2处的配置存不存在就可以访问静态资源,而对于myeclipse8.6或者以上版本的话,即使1处url配置了拦截为".XXX",如果2处配置了的话,想要访问某静态资源就要在2处配置对应的url 如<url-pattern>*.txt</url-pattern>,但是,如果2处没有配置的话,就可以访问所有的静态资源。也就是说,如果2处没配置就没什么问题,如果配置了,就需要配置对应静态资源的url