部署在Elastic Beanstalk的Spring Boot应用首页无法渲染问题求助
Spring Boot 部署在 AWS Elastic Beanstalk 仅首页无法加载的可能成因
静态资源映射配置异常
- 自定义
WebMvcConfigurer的addResourceHandlers方法时,误覆盖了/根路径的静态资源映射规则,其余子路径的映射未受影响 - 配置文件中
spring.web.resources.static-locations属性排除了首页文件所在目录,或spring.web.resources.index.name属性未正确配置非默认命名的首页文件 - 如果使用模板引擎渲染页面,需检查视图解析器的前缀、后缀配置是否匹配首页模板的存放路径和文件名
路由匹配优先级问题
- 存在优先级更高的路径匹配规则拦截了首页请求,比如定义了
@GetMapping("/**")的通用兜底接口,/index请求被该接口捕获后未走静态资源解析逻辑 - 配置了
server.servlet.context-path上下文路径,首页跳转/访问路径未添加上下文前缀,或硬编码了错误的绝对路径
Elastic Beanstalk 代理配置问题
- Elastic Beanstalk 默认的 Nginx/Apache 反向代理规则对
/根路径做了特殊处理,未转发到后端 Spring Boot 进程,其余子路径转发规则正常 - 自定义的
.ebextensions代理配置文件误将/或/index路径指向了服务器本地静态目录,未转发到 Spring Boot 服务端口 - 代理默认的索引文件规则优先级高于 Spring Boot 解析逻辑,比如 Nginx 配置了
index index.html但对应目录下无该文件,也未配置 fallback 到后端服务
打包与权限配置问题
- 首页文件未被打入构建产物,可解压jar/war包检查对应路径下是否存在首页文件,其余页面资源正常打包所以可正常访问
- 权限拦截器、Spring Security 规则仅拦截了
/或/index路径,其余路径被放行,首页请求被直接拦截或重定向 - 无对应控制器处理
/、/index路径的请求,或控制器返回的视图名称拼写错误
内容的提问来源于stack exchange,提问作者Musa
相关产品推荐
相关产品推荐

