搞定SpringMVC中的css及js引用路径

论坛 期权论坛 期权     
简码笔记   2019-7-13 08:28   1929   0
相信初入Java的的童鞋们都会遇到这个问题,那么今天我就带大家回顾一下我所掉过的坑。首先,环境说明:IDEA 开发工具,以引入Boostrap的css及js为例。第二部:新建工程,利用idea提供的框架新建工程还是很方便的(但是也有坑爹的地方,后面会讲)。好了,上个图吧,以下是我的项目目录;

有人说为什么把所有静态资源不放到同一个目录下,嗯,说的有道理,是可以那样做,但是我这要做的话也有好处,那就是引用的时候可以直接写成下面这样,因为jsp中默认是从根目录开始的,而不是根据你的jsp文件的位置
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
这样引用在Windows下肯定是没有问题的,Linux还没切换,等以后再试,有试过的也可以告诉我一下。但是有个问题,就是Idea会提示找不到文件,不过运行起来是可以正常加载,所以后来我改成了下面这样:     
  1.    
复制代码
  1.    
复制代码
  1.    
复制代码
  1.    
复制代码
这样心里一下子就有底了吧,因为这其实就可以从程序根上开始找你的文件了。说到这里,有个坑给大家填一波儿,pageContext.request.contextPath 开始我的程序死活是不识别,我在度娘那儿搜了半天,才有个人说出了关键,Idea默认生成的web.xml文件不支持!!尼妹啊!这也可以???
  1.    
复制代码
看看你的是不是也是上面那样,版本写的2.3呢?赶紧改了吧,下面是正确的   
  1. [/code][code]   
复制代码
至此,${pageContext.request.contextPath}就可以用了,当然你需要先引入jstl,你懂得。那么下面才是常规流,springmvc拦截器配置是这样的,本文只说spring mvc相关的,别的请见其他文章。     
  1. [/code][code]        spring-mvc
复制代码
  1.         org.springframework.web.servlet.DispatcherServlet
复制代码
  1.         
复制代码
  1.         
复制代码
  1.           contextConfigLocation
复制代码
  1.           classpath:spring_config.xml
复制代码
  1.         
复制代码
  1.       
复制代码
  1.      
复制代码
  1.       
复制代码
  1.         spring-mvc
复制代码
  1.         /
复制代码
  1.       
复制代码
如果你也是按上面这样写的,那你必然会有如下问题出现,就是静态资源也被拦截了,不能直接访问,这肯定不是我们想要的,那就需要对静态资源进行设置,有两种方式:1.修改web.xml文件 2. 修改spring-config.xml文件(推荐)个人喜欢第二种方式,第一种也很简单,但是需要按不同的文件类型进行过滤,我觉得麻烦,因为你也不确定你会用到哪些文件,css和js还好,图片呢??好多种jpg,peng吧啦吧啦都要写上,但是你的项目里可能都没有,为了保险你得写吧?第二种方式是按目录:在spring配置文件中加入如下说明,指定目录下是静态资源(这个好像是对Spring有版本要求,3.0以上肯定没问题),废话少续,上代码:      
  1. [/code][code]        
复制代码
  1.      
复制代码
  1.         
复制代码
  1.         
复制代码
  1.      
复制代码
  1.         
复制代码
  1.         
复制代码
  1.      
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
  1.         
复制代码
这样,显得我的目录建的不是很合适了,毕竟如果放到一个统一的文件夹下只需要写一条即可,没办法,我还是喜欢这样,更清晰,不喜勿喷。这样下来我们就可以正常加载你的静态资源文件了。 说一下其他的坑吧,万一有小伙伴遇到呢,至少网上我是没搜到有用的解决办法。1. 生成时部分子文件夹下的js或css没有生成到target目录,解决办法:右击相关文件夹标记为可用。2.web.xml文件的位置最好不要动,不信你可以试试,哈哈3. 如果还是不能加载,要学会用浏览器调试,F12所有浏览器都支持,如果没有加载上会有提示,我之前因为更改了jquery.js的名字造成了Maven没有及时更新,导致无法加载,浏览器提示的很对呀,后来几经周转才发现了这个问题,清理并重新生成,搞定!!以上,纯属个人学习感悟,欢迎指正。转载请注明出处,谢谢!
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP