相信初入Java的的童鞋们都会遇到这个问题,那么今天我就带你们回顾一下我所掉过的坑。css
首先,环境说明:html
IDEA 开发工具,以引入Boostrap的css及js为例。java
第二部:新建工程,利用idea提供的框架新建工程仍是很方便的(可是也有坑爹的地方,后面会讲)。jquery
好了,上个图吧,如下是个人项目目录;web
有人说为何把全部静态资源不放到同一个目录下,嗯,说的有道理,是能够那样作,可是我这要作的话也有好处,那就是引用的时候能够直接写成下面这样,由于jsp中默认是从根目录开始的,而不是根据你的jsp文件的位置spring
这样引用在Windows下确定是没有问题的,Linux还没切换,等之后再试,有试过的也能够告诉我一下。bootstrap
可是有个问题,就是Idea会提示找不到文件,不过运行起来是能够正常加载,因此后来我改为了下面这样:浏览器
这样内心一会儿就有底了吧,由于这其实就能够从程序根上开始找你的文件了。spring-mvc
说到这里,有个坑给你们填一波儿,pageContext.request.contextPath 开始个人程序死活是不识别,我在度娘那儿搜了半天,才有我的说出了关键,Idea默认生成的web.xml文件不支持!!尼妹啊!这也能够???mvc
/p>
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
看看你的是否是也是上面那样,版本写的2.3呢?赶忙改了吧,下面是正确的
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
至此,${pageContext.request.contextPath}就能够用了,固然你须要先引入jstl,你懂得。
那么下面才是常规流,springmvc拦截器配置是这样的,本文只说spring mvc相关的,别的请见其余文章。
spring-mvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring_config.xml
spring-mvc
/
若是你也是按上面这样写的,那你必然会有以下问题出现,就是静态资源也被拦截了,不能直接访问,这确定不是咱们想要的,
那就须要对静态资源进行设置,有两种方式:1.修改web.xml文件 2. 修改spring-config.xml文件(推荐)
我的喜欢第二种方式,第一种也很简单,可是须要按不一样的文件类型进行过滤,我以为麻烦,由于你也不肯定你会用到哪些文件,css和js还好,图片呢??好多种jpg,peng吧啦吧啦都要写上,可是你的项目里可能都没有,为了保险你得写吧?
第二种方式是按目录:在spring配置文件中加入以下说明,指定目录下是静态资源(这个好像是对Spring有版本要求,3.0以上确定没问题),废话少续,上代码:
这样,显得个人目录建的不是很合适了,毕竟若是放到一个统一的文件夹下只须要写一条便可,没办法,我仍是喜欢这样,更清晰,不喜勿喷。
这样下来咱们就能够正常加载你的静态资源文件了。
说一下其余的坑吧,万一有小伙伴遇到呢,至少网上我是没搜到有用的解决办法。
1. 生成时部分子文件夹下的js或css没有生成到target目录,解决办法:右击相关文件夹标记为可用。
2.web.xml文件的位置最好不要动,不信你能够试试,哈哈
3. 若是仍是不能加载,要学会用浏览器调试,F12全部浏览器都支持,若是没有加载上会有提示,我以前由于更改了jquery.js的名字形成了Maven没有及时更新,致使没法加载,浏览器提示的很对呀,后来几经周转才发现了这个问题,清理并从新生成,搞定!!
以上,纯属我的学习感悟,欢迎指正。转载请注明出处,谢谢!