You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure静态Web Apps路由刷新404:staticwebapp.config.json失效求助

解决Azure静态Web Apps中React应用staticwebapp.config.json不生效的问题

问题背景

部署流程修改为:构建React应用 → 上传dist文件到Azure Blob存储覆盖现有文件 → 从Blob下载所有文件到本地new文件夹 → 部署到Azure静态Web Apps。此时staticwebapp.config.json的导航 fallback配置未生效,原始不经过Blob的部署流程正常。

核心原因

Azure静态Web Apps要求staticwebapp.config.json必须位于部署的应用根目录,且部署流程需确保该文件被正确包含在上传内容中,同时app_location和output_location的配置要匹配实际文件结构。

解决步骤

1. 确保staticwebapp.config.json被包含在构建产物中

在React项目中,确保该配置文件被复制到dist(构建产物目录):

  • 若使用Create React App:将staticwebapp.config.json放入public文件夹,构建时会自动复制到dist目录。
  • 若使用Vite或其他构建工具:在构建步骤后添加复制命令,将配置文件拷贝到dist。在GitHub Action中追加步骤:
    - name: Copy config file to dist
      run: cp staticwebapp.config.json dist/
    

2. 修正GitHub Action的部署参数

当前部署步骤中output_location设置为dist,但从Blob下载的文件直接存放在new文件夹根目录(而非new/dist),导致Azure静态Web Apps无法识别正确路径,配置文件也无法处于部署根目录。修改Build And Deploy步骤:

- name: Build And Deploy
  id: builddeploy
  uses: Azure/static-web-apps-deploy@v1
  with:
    azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_MANGO_BAY_0BBC9890F }}
    repo_token: ${{ secrets.GITHUB_TOKEN }}
    action: "upload"
    app_location: "${{github.workspace}}/new"
    api_location: ""
    output_location: "" # 文件直接在app_location根目录,无需指定子目录
    skip_app_build: true

3. 验证Blob存储中的文件

登录Azure Portal打开Blob存储容器,确认根目录下存在staticwebapp.config.json。如果缺失,重新运行上传步骤,确保构建后的dist目录包含该文件后再上传。

4. 手动补充配置文件(可选)

若上述步骤未解决问题,可在下载Blob文件后,手动将项目根目录的配置文件复制到new文件夹根目录:

- name: Copy config file to new folder
  run: cp staticwebapp.config.json ${{github.workspace}}/new/

验证

部署完成后,访问应用路由(如/about)并刷新页面,确认不再返回404错误,导航 fallback配置生效。

内容的提问来源于stack exchange,提问作者Quak_2023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 09:13:15