记录一个刚开始接触Springboot时踩到的小坑。问题如下:
正在写一个登录功能,页面套用了bootstrap的模板,用浏览器打开页面有样式,但是整个项目跑起来的时候跳转的页面就会丢失样式,浏览器控制台会报错提示这些文件加载失败。
这是页面内引入样式表,看起来没有任何问题,相对路径没有错误,也没有报错:
从这里通过浏览器打开(这里是登陆失败的跳转页面):
但我们启动整个项目,在登陆页面故意登陆失败我们就会跳转成这样:
这里是控制台报错:
然鹅文件引入的路径并没有任何问题。
经过一番折磨我找到了答案,原文链接:8.8 Spring Boot静态资源处理_禅与计算机程序设计艺术的技术博客_51CTO博客
重点在最后一句,在Springboot中我们不需要写上目录名,也就是说
"/static/css/theme.css"其实就是"/css/theme.css"否则这个路径就是错误的(虽然从相对路径的角度看没有问题)
但容易踩坑的点就在于,如果你省略,idea会报错:
然后你在浏览器打开就没有样式了,如果不知道这一点非常容易被误导,但这时你启动项目,Springboot就把样式加载出来了:
问题解决。
ps:idea的这个警告把路径都标黄了反而是很有可读性。