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

Spring Boot集成Thymeleaf时加载自定义字体失败求助

解决Spring Boot + Thymeleaf中@font-face字体加载问题

核心问题与修复方案

1. 修正CSS语法错误

你之前的代码里把url()写成了url{},这是基础的CSS语法错误,直接导致路径解析失败。

2. 正确结合Thymeleaf路径表达式

使用Thymeleaf的内联样式和资源路径表达式,正确的@font-face写法如下:

<html>
<head>
    <title th:text="${report.person.name.first}"></title>
    <style th:inline="text">
        @font-face {
            font-family: 'roboto';
            font-weight: normal;
            src: url([[@{/fonts/Roboto-Regular.ttf}]]);
        }
    </style>
</head>
<body>
    ...
</body>
</html>

3. 确认字体文件的存放路径

Spring Boot默认仅从src/main/resources/static/目录加载静态资源,因此你的fonts文件夹必须放在static目录下,最终路径应为:
src/main/resources/static/fonts/Roboto-Regular.ttf
如果直接将fonts放在resources根目录下,Spring Boot无法识别该资源,这也是字体加载失败的常见原因。

验证步骤

  • 启动项目后,直接访问http://localhost:8080/fonts/Roboto-Regular.ttf(端口号根据你的配置调整),若能下载字体文件,说明资源路径配置正确。
  • 查看浏览器控制台的网络请求,确认字体文件的请求状态为200 OK,而非404。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 13:03:23