SpringMVC项目读取不到外部CSS文件的解决办法及总结

  昨天,在写一个新需求的时候,因为没有前端同事的对接,无奈只有自己写css,js放到ssm结构的后台项目中,因为之前开发都是把前端文件放在一个专门的服务器上,一直没有关注服务端项目读取静态资源的问题,运行部署以后,项目死活读取不到我在webapp目录下放置的css,js文件,经过一番探索发现了问题.

  原因是这样的,SpringMVC项目因为会在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/web-context.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>

  DispatcherServlet会拦截所有请求,包括对静态资源css,js的请求,它会将其当做一个正常的请求拦截掉,解决方法是在springmvc的配置文件,也就是上面的web-context.xml中添加<mvc:resources/>:

    <!--静态资源访问-->
    <mvc:resources location="/js/" mapping="/js/**"/>
    <mvc:resources location="/css/" mapping="/css/**"/>

  <mvc:resources/>指定静态资源的存放位置,指定目录下的文件不会再受DispatcherServlet的拦截.

原文地址:https://www.cnblogs.com/fingerboy/p/6844339.html