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
相关产品推荐
相关产品推荐

