我已将AngularJS应用程序部署到Azure应用服务,并且它需要在引导之前访问本地config.json文件。如何允许Azure App Services将config.json文件提供给AngularJS应用程序?
我尝试创建一个与文件路径匹配的虚拟目录;我试图将网站的web.config配置为提供.json文件。我检查了所有文件路径,并尝试定义完整路径,而不是使用相对路径。
angular.element(document).ready(() => {
$.get("config/config.json", (response) => {
angular.module('myApp').config((configurationProvider) => {
configurationProvider.initialize(response);
});
angular.bootstrap(document, ['myApp']);
});
});
当应用程序在IIS和IIS Express中本地托管时,以上代码按预期工作。但是,将应用程序部署到Azure时,它将返回以下消息
“您要查找的资源已被删除,名称已更改或暂时不可用。”
答案 0 :(得分:0)
我已经解决了我的问题。我必须进行两项更改,以确保应用程序和服务器都请求并正确响应。
首先,我将应用程序代码更改为:
angular.element(document).ready(() => {
$.getJSON("config/config.json", (response) => {
angular.module('myApp').config((configurationProvider) => {
configurationProvider.initialize(response);
});
angular.bootstrap(document, ['myApp']);
});
});
第二,我已经将Web.config添加到网站目录:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
</configuration>
Azure App Services都需要。