GitHub部署Azure静态网站时staticwebapp.config.json不生效如何解决?
问题修复步骤
1. 修复staticwebapp.config.json语法与配置错误
你当前的配置文件存在2个问题,会直接导致规则不生效:
- JSON语法错误:第二个路由规则的
"rewrite": "/down.html"末尾多了不必要的逗号,JSON不允许尾部多余逗号 - 字段使用错误:你要实现307跳转的场景需要用
redirect字段,rewrite是服务端路径重写,不会触发浏览器跳转,也不会返回307状态码
修正后的配置如下:
{ "routes": [ { "route": "/index.html", "redirect": "/down.html", "statusCode": 307 }, { "route": "/test/", "rewrite": "/down.html" } ] }
提示:如果需要访问
/test/也触发浏览器跳转,将对应规则的rewrite改为redirect,并补充"statusCode": 307字段即可。
2. 升级Azure静态Web应用部署Action版本
你当前使用的v0.0.1-preview是多年前的非正式预览版本,对staticwebapp.config.json的支持存在缺陷,甚至部分旧预览版仅识别旧版的routes.json配置文件。将工作流文件中两处部署Action都升级到正式版即可:
找到以下两行:
uses: Azure/static-web-apps-deploy@v0.0.1-preview
全部替换为:
uses: Azure/static-web-apps-deploy@v2
3. 修正工作流的输出路径配置
纯静态无构建步骤的站点,output_location需要明确设置为根目录/,避免部署时遗漏根目录下的配置文件:
output_location: "/" # 替换原来的空值
4. 验证配置
所有修改完成后提交代码触发重新部署,部署完成后清理浏览器缓存再测试路由规则即可生效。
内容的提问来源于stack exchange,提问作者John Little
相关产品推荐
相关产品推荐

