求助:部署Spring Boot应用到Azure后始终显示默认Java页面
检查前端资源部署路径
普通Java Web App(Tomcat环境)默认静态资源根目录为webapps/ROOT,通过Azure门户的「高级工具(Kudu)」进入wwwroot/webapps/ROOT目录,确认是否存在React打包后的index.html及JS/CSS资源。如果资源缺失,说明GitHub Actions构建或部署环节未正确同步前端产物。验证Spring Boot静态资源配置
若前端资源打包到Spring Boot项目中,需在配置文件(application.properties/application.yml)中明确静态资源映射路径:spring.web.resources.static-locations=classpath:/static/,file:./build/同时检查启动类是否存在自定义拦截器或RequestMapping,避免覆盖静态资源的访问路径。
排查GitHub Actions构建流程
确认构建脚本完成以下关键步骤:- 进入前端目录执行
npm install && npm run build完成打包 - 将
build目录下的产物复制到Spring Boot的src/main/resources/static目录(或直接部署到Web App的静态目录)
示例脚本片段:
cd ./frontend npm ci npm run build cp -r build/* ../backend/src/main/resources/static/ cd ../backend ./mvnw clean package -DskipTests另外检查部署步骤是否将包含前端资源的Spring Boot包(WAR/JAR)正确上传到Azure。
- 进入前端目录执行
调整Web App启动配置
若部署的是Spring Boot JAR包,需在Azure门户「配置->常规设置」中设置启动命令为java -jar <你的应用Jar包名>.jar,避免Tomcat默认启动页面接管请求。如果是WAR包,确认WAR包放置在webapps/ROOT.war或webapps/ROOT目录下,覆盖默认的ROOT应用。确认默认文档优先级
在Azure门户「配置->默认文档」中,将index.html移至列表最顶部,确保Web App优先加载前端入口文件,而非Tomcat默认页面。
内容的提问来源于stack exchange,提问作者Damien McGeer

