You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot+Thymeleaf项目CSS路径加载异常求助

Spring Boot + Thymeleaf 加载CSS样式失败的解决方案

问题根源

本地直接打开HTML时,相对路径基于文件系统,css/style.css能正确找到同级目录下的css文件夹;但Spring Boot运行时,resources/static是静态资源的默认根目录,服务器会把该目录下的资源映射到应用根路径/,所以原相对路径在服务器环境下解析错误。而硬写resources/static/css/...是错误的——服务器不会暴露resources/static作为访问路径,本地打开时也找不到这个路径,最终导致页面空白。

正确的CSS引用方式

方式1:使用绝对路径(简单直接)

直接以/开头指向静态资源,Spring Boot会自动匹配resources/static下的文件:

<link href="/css/style.css" rel="stylesheet" type="text/css">
<link href="/css/css.css" rel="stylesheet" type="text/css">

方式2:使用Thymeleaf官方URL表达式(更规范,适配上下文路径)

利用Thymeleaf的@{}语法,它会自动处理应用的上下文路径,适合后续部署到带上下文的环境:

<link th:href="@{/css/style.css}" rel="stylesheet" type="text/css">
<link th:href="@{/css/css.css}" rel="stylesheet" type="text/css">

注意:使用该语法时,HTML文件必须通过Thymeleaf渲染,即需要控制器返回模板名,而非直接让浏览器访问静态HTML文件。

控制器配置验证

确保你有对应的控制器映射根路径,将请求转发到index.html模板:

@Controller
public class HomeController {
    @GetMapping("/")
    public String home() {
        return "index"; // 指向src/main/resources/templates/index.html
    }
}

验证静态资源是否可访问

启动项目后,直接访问http://localhost:8099/css/style.css,如果能看到CSS内容,说明静态资源映射正常,此时再访问根路径就能加载样式了。

内容的提问来源于stack exchange,提问作者Jcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 01:37:45