Spring Boot应用无法渲染欢迎HTML页面,求问题排查指导
以下是针对该问题的排查步骤,均为新手常踩的典型陷阱:
确认模板引擎依赖是否存在
Spring Boot默认使用Thymeleaf渲染src/main/resources/templates下的HTML文件,若未引入Thymeleaf依赖,框架无法识别模板文件,直接返回404。
Maven项目需在pom.xml中添加:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>Gradle项目需在
build.gradle中添加:implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'检查控制器注解是否正确
当前使用的@Controller是正确的,但需注意不要误写为@RestController——后者会将返回的字符串直接作为HTTP响应体,不会匹配模板文件,这是新手极易犯的错误。核对文件路径与命名细节
确保index.html确实在src/main/resources/templates根目录下:- 文件名大小写完全一致(Windows系统不区分,但Linux/macOS及服务器环境严格区分);
- 未嵌套在子目录中,若存在子目录,控制器返回值需改为
"子目录名/index"。
验证应用上下文路径配置
如果在application.properties或application.yml中配置了server.servlet.context-path(例如server.servlet.context-path=/myapp),访问地址需改为http://localhost:8080/myapp/welcome,而非原地址。检查打包后的文件是否存在
查看项目编译后的目录(Maven为target/classes/templates,Gradle为build/resources/main/templates),确认index.html是否被正确打包。若缺失,可能是资源配置排除了HTML文件,需检查构建脚本中的资源规则。开启debug日志排查配置加载情况
在application.properties中添加以下配置,启动应用后查看Thymeleaf相关配置是否正常加载:logging.level.org.springframework.boot.autoconfigure=debug如果日志中没有
ThymeleafAutoConfiguration相关的加载记录,说明依赖未被正确引入或被排除。
内容的提问来源于stack exchange,提问作者Ankit Mishra

