SpringMVC项目读取不到外部CSS文件的解决办法及总结-阿里云开发者社区

开发者社区> 开发与运维> 正文

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

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

  昨天,在写一个新需求的时候,因为没有前端同事的对接,无奈只有自己写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的拦截.

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章