0
点赞
收藏
分享

微信扫一扫

Springboot整合thymeleaf时静态资源无法加载

灵魂跑者 2022-04-13 阅读 38

一、问题复现

启动springboot项目后,登录进首页时,始终加载不出CSS样式

image-20220411214545268

image-20220411215248963

所有的文件都是200的状态码,并且在源码中的head标签中,css样式也加载进去了,但页面并没有显示CSS样式。

二、原因分析

发送的请求为:http://localhost:8080/1001/nihao

后台接收处理该请求的方法为:

@Controller
public class IndexController {
    @GetMapping("/{id}/{name}")
    public  String test(@PathVariable String id,@PathVariable String name){
        return "index";
    }
}

按道理来说,当发送请求到达后台时,该方法会跳转到首页,并也会应用CSS样式,实际上也确实跳转到首页,但样式却并没有应用。

仔细分析后发现,

image-20220411215626374

实际上,网页上显示的所有文件都是要发送请求并从后台中获取到的,而获取CSS样式发送的请求为:http://localhost:8080/css/me.css

好巧不巧,该样式也会被后台的test方法拦截下,并将css解析用id变量接收,me.css解析被name变量接收,并再次跳转到了首页。也就是说,网页要应用样式,就必须从后台请求获取样式,而获取样式的请求被拦截下来了,并将其跳转到了首页。导致了样式表没有请求成功。

三、解决方案

知道了原因再去解决其实就很简单了。直接一波,将后台处理请求的方法路径改一下,别用用那种获取网页文件的请求被拦截的处理路径就行。

@Controller
@RequestMapping("/test")
public class IndexController {
    @GetMapping("/{id}/{name}")
    public  String test(@PathVariable String id,@PathVariable String name){
        return "index";
    }
}
举报

相关推荐

0 条评论