前提条件是在web.xml种配置的DispatcherServlet如下url-pattern为 /
<!--配置dispatcherServlet-->
<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:springmvc-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
方式一
在springMvc-servlet.xml中配置
<mvc:annotation-driven />
<mvc:resources location="/img/" mapping="/img/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
说明:
location元素表示webapp目录下的static包下的所有文件;
mapping元素表示以/static开头的所有请求路径,如/static/a 或者/static/a/b;
该配置的作用是:DispatcherServlet不会拦截以/static开头的所有请求路径,并当作静态资源
交由Servlet处理。
如果springmvc-servlet.xml中配置了拦截器,有可能会影响放行静态资源
如下所示,<mvc:exclude-mapping path="/html/**"/> 配置拦截器配置不拦截/html/**下的所有资源
<mvc:interceptors>
<mvc:interceptor>
<!--
/**的意思是所有文件夹及里面的子文件夹
/*是所有文件夹,不含子文件夹
/是web项目的根目录
-->
<mvc:mapping path="/**" />
<mvc:exclude-mapping path="/html/**"/>
<bean id="loginInterceptor" class="com.omp.comm.interceptor.LoginInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
<mvc:resources mapping="/html/**" location="/html/"/>
方式二
在web.xml中配置如下如下内容,把涉及到的静态资源都配置一遍
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.ico</url-pattern>
<url-pattern>*.swf</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.jpeg</url-pattern>
<url-pattern>*.bmp</url-pattern>
<url-pattern>*.psd</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.htm</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>*.crx</url-pattern>
<url-pattern>*.xpi</url-pattern>
<url-pattern>*.exe</url-pattern>
<url-pattern>*.ipa</url-pattern>
<url-pattern>*.apk</url-pattern>
<url-pattern>*.htc</url-pattern>
</servlet-mapping>
或者把静态资源都放到resources文件夹内,如果文件夹中含有jsp界面,访问的时候将会只返现源码,可以正常访问html
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/resources/*</url-pattern>
</servlet-mapping>
方式三
由于配置了<url-pattern>/</url-pattern>才把静态资源给拦截了,所以,我们可以在这里把资源路径改下,<url-pattern>/omp/*</url-pattern>,如果访问后台的话都需要带上这个/omp,这样静态资源就不会拦截了。
或者使用<url-pattern>*.do</url-pattern>的方式