如何使用jquery访问Azure网站的本地文件?

时间:2019-06-20 18:43:43

标签: jquery angularjs azure

我已将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时,它将返回以下消息

  

“您要查找的资源已被删除,名称已更改或暂时不可用。”

1 个答案:

答案 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都需要。