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

SpringBoot从1.4.3升级到1.5.22后Thymeleaf页面显示异常求助

修复SpringBoot 1.5.22集成Thymeleaf时资源URL缺失哈希及jsessionid的问题

1. 修正Thymeleaf资源引用语法

确保HTML中所有静态资源(CSS、JS、图片等)的路径使用Thymeleaf的@{...}表达式包裹,而非直接写静态路径:

  • 错误写法:<link href="/css/style.css" rel="stylesheet">
  • 正确写法:<link th:href="@{/css/style.css}" rel="stylesheet">
    只有通过@{}语法,Thymeleaf才会自动处理资源的哈希后缀生成和jsessionid追加逻辑。

2. 开启资源内容哈希配置

在application.properties中添加以下配置,确保SpringBoot为静态资源自动生成内容哈希后缀:

spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**

该配置是SpringBoot 1.5.x版本启用资源版本管理的关键,替代了1.4.x版本的旧有逻辑。

3. 配置Session跟踪模式

如果应用需要通过URL追加jsessionid(比如兼容禁用Cookie的客户端),需在application.properties中明确设置Session跟踪模式:

server.servlet.session.tracking-modes=COOKIE,URL

若仅需URL模式,可将值设为URL,但通常推荐保留COOKIE优先,同时启用URL作为 fallback。

4. 确保依赖版本兼容

SpringBoot 1.5.22默认适配Thymeleaf 2.1.6.RELEASE,不要手动指定其他版本,避免版本冲突。Maven依赖示例:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

Gradle依赖示例:

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

5. 清理缓存

升级后需清理两类缓存,避免旧资源干扰:

  • 强制刷新浏览器缓存(快捷键Ctrl+Shift+R)
  • 执行构建工具的clean命令(Maven:mvn clean,Gradle:gradle clean),清理项目构建生成的旧静态资源文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 14:45:55