问题产生场景:
1、项目使用IDEA开发
2、开发环境下面jsp引用css、js文件正常显示
3、将项目打包成war文件放入tomcat/webapp下样式引用失败
问题分析:
1、<head>标签下面的<base href="<%=basePath%>">搞的鬼,这行代码是创建jsp页面的时候自动生成的,这是基准链接,会把页面里所应用到的链接给覆盖了,引用CSS样式文件的链接也同样被覆盖了,所以就无法正常显示样式。把<base href="<%=basePath%>">删去即可解决。
2、tomcat原有缓存影响,将work文件删除
3、项目部署到tomcat下,tomcat会自动生成相应的解压包
通过调试你会发现css、js等文件无法索引到,他是这样索引http://localhost:11525/css/xxx.css。看上面的索引路径可以看到其实他并非去索引我们xbw/css/xxx.css,因为tomcat会自动将xxxx.war解压到xxxx文件夹下,自然索引索引不到。出现问题的重点在于你在jsp文件时路径采用的是绝对路径 <link rel="stylesheet" href="/css/login.css"> 他没办法找到 xxxx这个文件夹,我们可以改成相对路径 <link rel="stylesheet" href="../css/login.css"> ,调试时地址已经改为http://localhost:11525/xbw/css/xxx.css。