记录一个刚开始接触Springboot时踩到的小坑。问题如下:

正在写一个登录功能,页面套用了bootstrap的模板,用浏览器打开页面有样式,但是整个项目跑起来的时候跳转的页面就会丢失样式,浏览器控制台会报错提示这些文件加载失败。

这是页面内引入样式表,看起来没有任何问题,相对路径没有错误,也没有报错:

在IDEA中选择通过浏览器打开(这里是登陆失败的跳转页面):

 但我们启动整个项目,在登陆页面故意登陆失败我们就会跳转成这样:

 这里是控制台报错:

然鹅文件引入的路径并没有任何问题。

经过一番折磨我找到了答案,原文链接:8.8 Spring Boot静态资源处理_禅与计算机程序设计艺术的技术博客_51CTO博客

 重点在最后一句,在Springboot中我们不需要写上目录名,也就是说

"/static/css/theme.css" 其实就是 "/css/theme.css" 否则这个路径就是错误的(虽然从相对路径的角度看没有问题)

但容易踩坑的点就在于,如果你省略,idea会报错:

 

然后你在浏览器打开就没有样式了,如果不知道这一点非常容易被误导,但这时你启动项目,Springboot就把样式加载出来了:

 问题解决。

ps:idea的这个警告把路径都标黄了反而是很有可读性。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐