Spring Boot 2.0.2集成Thymeleaf模板报404错误,求解决方案
解决Spring Boot 2.0.2升级后Thymeleaf模板找不到的问题
你好,针对你升级Spring Boot版本后遇到的Thymeleaf模板解析404问题,我整理了几个针对性的解决步骤,帮你快速排查修复:
1. 修正Thymeleaf路径前缀配置
Spring Boot 2.x对Thymeleaf的默认路径规则做了调整,你当前配置的prefix: /templates/缺少classpath标识,系统无法正确定位到src/main/resources/templates目录。修改application.yml中的配置:
spring: thymeleaf: cache: false enabled: true mode: HTML # Thymeleaf 3.x推荐使用HTML模式,原HTML5模式在新版本中已调整 prefix: classpath:/templates/ # 添加classpath前缀,明确资源位置 suffix: .html
2. 移除依赖中的手动版本指定
Spring Boot的starter依赖已经通过父项目统一管理版本,手动指定<version>可能引发依赖冲突。修改pom.xml中的Thymeleaf依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <!-- 移除手动指定的version,让Spring Boot parent自动管控版本 --> </dependency>
3. 补全"error"模板或调整错误处理逻辑
错误提示明确指向找不到error模板,这是因为Spring Boot 2.x默认会在系统触发异常/错误请求时,自动寻找templates/error.html作为全局错误页面。你可以二选一处理:
- 在
src/main/resources/templates目录下创建一个简单的error.html模板文件; - 自定义
ErrorController类,覆盖默认的错误跳转逻辑,指定你需要的错误页面。
4. 确认邮件模板的调用路径(额外检查)
虽然当前错误提示是error模板,但也建议确认邮件模板的调用逻辑:如果你的邮件模板在templates/email/xxx.html,那么调用TemplateEngine时要传入email/xxx作为模板名称,不要带后缀或完整路径。
5. 清理缓存并重启项目
版本升级后残留的编译缓存可能导致配置不生效,建议先执行mvn clean install清理项目,再重启应用,确保新配置完全加载。
按照以上步骤调整后,应该就能解决模板找不到的问题啦。如果还有疑问,可以检查下项目的src/main/resources是否被IDE正确标记为资源根目录。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

