各位不知道写web程序的时候, 有没有被404
秀的头皮发麻, 尤其是那个排错的过程, 是不是无比刺激(好像关在了小黑屋, 被人爆锤), 后来以至于我的生日愿望, 新年愿望, 七夕(算了,不骗自己了额) 都是:
0 error, 0 Warnings
其实到最后发现都是自己 令人智熄的操作:
比如:
说了这么多概括一句话,: 程序员永不为奴!
OK 鸡血打完了 我们说点正事:
最近笔者来到了牛逼哄哄的SSM框架上了, 框架使用起来的确舒服, 以前我还挺看好Sevlet 谁知道一堆框架的问世 让Sevlet立刻暴毙, sevlet什么玩意(真香现场)
但是 舔狗一无所有!
这不, 昨天被一个平时瞧不上眼 jsp页面
血虐, 我曾一度像天堂许愿:愿天堂没有404!
<script src="../js/jquery-3.4.1.js"></script>
故事是这样的: 笔者学完Springmvc 后打算练习一下, 凭着往日老司机的配置经验 一路配置 tomcat第一次就AC了(我还挺意外的) 没想到 当我正打开页面测试数据时 就发生了上面的惨案
怎么会找不到jquery? ,还有其他静态图片也访问不到了
我本能想到是不是spring-mvc.xml 配置出错, 仔细检查 还找了大佬的代码一个个对照, 结果是没得问题,
这就奇怪了, 我在后台倒腾了几个小时 都没有丝毫觉得jsp
会错(真的,老司机在jsp翻车,要石锤的!)
我之所以不去检查jsp 是因为我是完全复制我在SevletDemo练习的jsp 页面, 万万不该
直到,我抱着试试心态从chrome 中看能发现点什么 果然, 路径出错
具体分析:
我的jquery.js 在 js目录下 但是实际访问是在 ajaxDemo文件夹里
还是抱着试试的心态(哈哈, 敢于试错, 很爽的) 我把../
去掉后:
<script src="js/jquery-3.4.1.js"></script>
我去 成了 !
运行没错了,我脑子蒙了 这不和sevlet一样的jsp页面吗 抱着疑问 二话不说 又去按着修改后的代码去玩servlet 结果404 tm的又来折磨老子了
细心的同志们该 反应过来了 : 目测这是一个深坑
Servlet中访问静态资源的写法(当然还有其他写法)
<script src="../js/jquery-3.4.1.js"></script>
Springmvc访问静态资源的写法
<script src="js/jquery-3.4.1.js"></script>
二者只要互换 404就来了, 其实是因为
当我们使用servlet
的时候
访问上面的js 如果不加../
它就会被拼接在你的请求路径中, 所以就不能定向找到js
而springmvc 中如果加上 ../
就相当于你在服务器根路径上找, 结果必然404
但是有一种例外: 如果你是从后台跳到前台页面 ,而这个页面也需要一些静态资源的时候 你还是要加上
../
原因很简单它逃过了springmvc的拦截, 所以不能继续采用springmvc的做法了
看完这个,你以后见到404 可以骄傲的说: 404 ,给我跪下!
其实,最近玩框架遇到的坑很多 ,这个是最值得拿到台面说的
后面我会继续整理一些坑 给大家做个填坑专栏 方便及时查看
溜了 溜了…