Azure静态Web应用部署React项目返回HTML而非JSON问题求助
解决Azure Static Web App中React应用返回JSON而非HTML的问题
你的核心问题是导航回退规则把JSON请求也重写成了index.html,当前的exclude列表只排除了媒体和CSS文件,没覆盖JSON资源。另外,你配置的JSON MIME类型也有误,标准类型是application/json而非text/json。
按以下步骤修改staticwebapp.config.json:
扩展
navigationFallback.exclude数组,添加JSON文件的匹配规则,根据你的JSON文件实际位置调整路径:- 若JSON在
static目录下,添加"/static/*.json" - 若在根目录下,添加
"/*.json" - 若存在多层级子目录的JSON,用
"/**/*.json"匹配所有位置的JSON文件
- 若JSON在
修正
mimeTypes中的JSON类型为标准值
修改后的完整配置示例:
{ "navigationFallback": { "rewrite": "/index.html", "exclude": [ "/static/media/*.{png,jpg,jpeg,gif,bmp}", "/static/css/*", "/static/*.json", "/*.json" ] }, "mimeTypes": { ".json": "application/json" } }
额外检查点
- 确认构建后的部署包中存在目标JSON文件,路径和配置里的匹配规则完全一致
- 如果是通过API端点返回JSON(而非静态JSON文件),需确保API路由未被导航回退规则覆盖,可在
routes部分添加专门的API路由规则以优先匹配
将更新后的配置文件重新部署到Azure Static Web App,测试JSON请求即可正常返回。
内容的提问来源于stack exchange,提问作者Mike Developer
相关产品推荐
相关产品推荐

