SpringMVC项目加载不出css和js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC项目加载不出css和js相关的知识,希望对你有一定的参考价值。

项目用的SpringMVC,开始使用的是jsp页面,然后web.xml文件<url-pattern>/</url-pattern>,然后后来换成了html页面,访问页面的时候,加载不出来css、js等样式.

尝试了还是不行的原因,你可能在mvc的xml文件中没有引入mvc的配置:    

(我的是这个文件:applicationContext-mvc.xml)

1、xmlns:mvc="http://www.springframework.org/schema/mvc"

2、xsi:schemaLocation=“http://www.springframework.org/schema/mvc 

http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd”

3、<mvc:annotation-driven /><!--启动注解驱动 -->

<mvc:resources location="/imgages/" mapping="/imgages/**"/>

<mvc:resources location="/js/" mapping="/js/**"/>

<mvc:resources location="/css/" mapping="/css/**"/>

如此之后,我的就可以了。希望让更多的的人看到

PS:我的项目是Maven构建的Spring+SpringMVC+MyBatis

贴上图片,看的更直观些

参考技术A 前台是先获取页面(jsp、html等)然后根据页面上应用的js和css再向后台请求相应的js和css文件
但springmvc有过滤机制他会把所有的url请求按照配置进行过滤,包括资源文件
所以你如果没有设置相应的静态资源不拦截配置,这些资源请求也是会被spring拦截下来的
所以要在springmvc的配置文件中加如下配置:
(这是指定请求某种文件到相应的包里去找,但实际中可能资源文件不在这个包中就很尴尬了)
<mvc:resources location="/image/" mapping="/image/**"/>
< mvc:resources location="/css/" mapping="/css/**"/>
(所以我是这么配置的,只要是指定文件都从根目录找)
<mvc:resources location="/" mapping="/**/*.js"/>
<mvc:resources location="/" mapping="/**/*.css"/>
随便你怎么配置都可以
参考技术B 你页面加载css和js的路径是绝对路径还是相对路径??
绝对路径要加项目名称,建议最好使用$webroot等定义好的项目root路径参数追问

尝试了下,还是不行啊?

参考技术C 参见 http://www.blogjava.net/fiele/archive/2014/08/24/417283.html追问

尝试了下,还是不行啊?

Eclipse中使用Tomcat加载项目在浏览器中访问的时候JS和CSS等静态文件无法加载的问题

首先,我的Eclipse是引用外部的Tomcat

技术分享图片

引用外部Tomcat会在左侧生成一个Server文件夹,相当于复制了一份Tomcat到Eclipse的安装目录里

技术分享图片

具体Tomcat所在目录可以在这进行查看

双击Tomcat服务,会打开一个窗口,然后点击Open launch configuration,可打开配置窗口,在这里可以查看到具体服务所在位置。

技术分享图片

技术分享图片

接下来步入正题,正如题目所说,Eclipse中使用Tomcat加载项目在浏览器中访问的时候JS和CSS等静态文件无法加载,如图

技术分享图片

仔细看下路径,会发现相对路径有问题,所以加载不到。

Eclipse中使用Tomcat直接启动项目的话,因为项目是默认部署在webapps下的,所以访问的话必须带项目名,相应的所有静态文件也需要带项目名访问,但是页面里面引入的都是相对路径,所以会报访问不到的错误。

具体解决办法,只需要修改Eclipse中Tomcat的配置的相对路径即可

项目加入Tomcat后,会在左侧Server文件夹下的server.xml文件中生成一行访问路径

技术分享图片

只需要把path后面的路径修改为“/”就OK了。这样访问项目的时候就不需要带上项目名了。

问题解决。

以上是关于SpringMVC项目加载不出css和js的主要内容,如果未能解决你的问题,请参考以下文章

springmvc引入js,css等静态文件路径问题!!!

springmvc与前端框架配合使用(加载跳转)出现cssjsimg加载不了的解决办法

Thymeleaf错误地加载静态文件

Spring MVC 不会将 css、js 文件加载到静态 html 页面

关于springMVC中静态文件路径问题

SpringMVC中css,js,图片等静态资源被拦截的解决办法