前提:ssm框架,配置了前端控制器,开启了mvc的注解驱动,配置了默认的servlet处理静态资源,注入了thymeleaf依赖。
最近在做一个博客系统,如果单独访问一个html页面是正常的,css,image等静态资源都能加载出来,但是从tomcat访问就不行,而且是能出来页面,但是页面效果是不正常的,也就是css页面和一些image等静态资源没有访问到,看到这,真的是有想砸电脑的冲动.....不知道有没有和我一样的小伙伴。
问题页面:
console页面如下图:
然后,我就开始了漫长的解决bug之旅.........
我把所有的资料都翻了个遍,网上的解决方案能看的都看了,然而...还是没能解决,就在我即将奔溃和放弃的时候....我看到了一篇帖子,他说一般不能将static下的静态资源放在web-inf下,一般是放在web-app下,因为这样即使路径是正确的也读取不到静态文件,我顿时恍然大悟,任督二脉彷佛被打通了,我马上去看我的项目,果然,我放在了web-inf下!!
解决方法:将static移动至webapp下,然后通过thymeleaf的方式写入路径,成功!!!!
改动之后的项目结构图:
最后总结一下,一般来说,报404的是存在路径错误,但如果非常确定自己路径是正确的,那就仔细检查一下配置文件,以及tomcat,以及项目结构。
希望我的博客能帮助到和我一样的小伙伴,因为解决bug真的太痛苦了!!
可能是我菜,这个bug找了快一天...真是心累啊,看来还是得提高解决bug的能力才行!