Azure Web App无法加载.json文件的问题排查求助
解决Azure Web App中.json文件无法加载的404问题
从你描述的情况和Azure诊断日志里的SECURITY_DENIED_BY_MIMEMAP警告来看,核心问题是IIS服务器没有为.json文件配置正确的MIME类型映射,导致服务器拒绝提供该静态文件,从而返回404错误。虽然.js文件属于IIS默认允许的静态资源类型,但.json并不在默认列表里,所以即使路径完全正确,也会被安全规则拦截。
快速解决方法:添加Web.config配置MIME类型
这是最直接有效的方案,只需在你的项目根目录添加或修改Web.config文件,添加.json的MIME映射规则:
<configuration> <system.webServer> <staticContent> <!-- 为.json文件添加MIME类型映射 --> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent> </system.webServer> </configuration>
添加完成后,将这个文件提交到GitHub仓库,重新部署到Azure Web App即可。服务器会自动读取这个配置,允许.json文件作为静态资源被访问。
其他排查和补充步骤
- 确认文件是否正确部署:可以通过Azure门户的「高级工具」→「Kudu控制台」,进入网站的
site/wwwroot目录,检查你的clauses_array.json是否存在于指定路径下,避免部署时文件被遗漏(比如.gitignore不小心包含了.json文件)。 - 测试直接访问URL:在浏览器地址栏直接输入
https://easyfabric.azurewebsites.net/js/clauses_array.json,如果配置生效,应该能看到文件内容;如果还是404,再检查Web.config是否被正确应用。 - 检查Azure门户的静态文件设置:在Web App的「配置」→「常规设置」里,确认「静态文件」选项是开启状态;也可以在「配置」→「MIME类型」里手动添加.json的映射(不过通过Web.config配置更便于版本管理)。
为什么之前正常突然失效?
大概率是你修改路径测试后,重新部署时覆盖了之前包含MIME配置的Web文件,或者之前的部署环境(比如本地测试的IIS Express)默认允许.json访问,但Azure的生产环境IIS默认不包含这个配置。
内容的提问来源于stack exchange,提问作者LTanase
相关产品推荐
相关产品推荐

