Spring Boot中Thymeleaf仅加载index.html,跳转其他页面报白标错误
Spring Boot页面跳转白标错误排查方案
核对控制器配置
- 跳转页面的控制器必须用
@Controller注解(别用@RestController,后者会直接返回JSON而非视图),同时确认@RequestMapping的路径和页面发起的请求地址完全匹配。比如页面跳转请求是/register,控制器方法的映射就得是@RequestMapping("/register"),返回值写"register"对应templates下的register.html。
- 跳转页面的控制器必须用
确认视图解析器依赖与配置
- 若用Thymeleaf做视图解析,先检查pom.xml里是否引入了依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> - 检查application.properties/yaml的视图配置(默认配置可不用改,但自定义过要核对):
spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html
- 若用Thymeleaf做视图解析,先检查pom.xml里是否引入了依赖:
修正页面跳转路径
- 前端页面跳转用绝对路径,比如
<a href="/register">注册</a>,避免相对路径导致请求地址偏离应用根路径。 - 控制器内部跳转直接返回视图名(如
return "register";),不要加前缀斜杠,否则可能导致视图解析器找不到页面。
- 前端页面跳转用绝对路径,比如
检查页面存放位置
- 模板页面(如需要Thymeleaf渲染的register.html)必须放在
src/main/resources/templates/目录下;如果是纯静态HTML,放在src/main/resources/static/下可直接通过/register.html访问,无需控制器映射。
- 模板页面(如需要Thymeleaf渲染的register.html)必须放在
排查拦截器或过滤器干扰
- 检查是否有登录拦截器、权限过滤器等拦截了跳转请求,比如拦截器未放行
/register路径,导致请求被阻断返回错误。
- 检查是否有登录拦截器、权限过滤器等拦截了跳转请求,比如拦截器未放行
内容的提问来源于stack exchange,提问作者Syed
相关产品推荐
相关产品推荐

