静态站点的Azure功能代理路由

时间:2018-04-16 18:50:35

标签: azure-functions azure-function-app-proxy

我在blob存储中托管Hugo生成的静态站点,根路径显示网站就好了。但是,当我点击任何其他页面的链接时,我收到以下错误。我已经确认实际blob存在,所以我认为我的proxies.json文件存在问题。

这是错误

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

<body ng-app="myApp" ng-controller="myCtrl">

<h1 ng-repeat="x in records">{{x.Class}}

</h1>
<div ng-repeat="s in records.students">{{s.name}}</div>


  <input ng-model="formdata.name"  type="text" />


            <input type="button"  value="Save" ng-click="saveName(formdata)">
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  $scope.records = [{"Class":"Class 8"}];
  $scope.saveName = function(name)
  {
    $scope.records.students.push({"name":name});
  }
});
</script>

</body>
</html>

这是我原来的proxies.json文件。我已经完成了它的一些变化,似乎没有任何效果。

<Error>
   <Code>BlobNotFound</Code>
     <Message>
       The specified blob does not exist. RequestId:304b66fb-401e-00a0-2763- 
       d2f5b4000000 Time:2018-04-12T13:37:06.9267123Z
     </Message>
</Error>

这是容器中的文件结构

{ "$schema": "http://json.schemastore.org/proxies", "proxies": { "root": { "matchCondition": { "route": "/" }, "backendUri": "https://e.blob.core.windows.net/site-content-jrb-fyi/index.html" }, "firstlevel": { "matchCondition": { "route": "/{level1}/{item}" }, "backendUri": "https://e.blob.core.windows.net/site-content-jrb-fyi/{level1}/{item}" }, "secondlevel": { "matchCondition": { "route": "/{level1}/{level2}/{item}" }, "backendUri": "https://e.blob.core.windows.net/site-content-jrb-fyi/{level1}/{level2}/{item}" }, "thirdlevel": { "matchCondition": { "route": "/{level1}/{level2}/{level3}/{item}" }, "backendUri": "https://e.blob.core.windows.net/site-content-jrb-fyi/{level1}/{level2}/{level3}/{item}" }, "fourthlevel": { "matchCondition": { "route": "/{level1}/{level2}/{level3}/{level4}/{item}" }, "backendUri": "https://e.blob.core.windows.net/site-content-jrb-fyi/{level1}/{level2}/{level3}/{level4}/{item}" }, "rest": { "matchCondition": { "route": "{*restOfPath}" }, "backendUri": "https://e.blob.core.windows.net/site-content-jrb-fyi/{restOfPath}" } } }

非常感谢任何帮助。

谢谢,

约翰

1 个答案:

答案 0 :(得分:0)

我知道这很旧,但是当您的Blob容器未设置为允许匿名只读访问时,就会出现此错误。

从Azure门户,您可以更新一个或多个容器的公共访问级别:

  1. 在Azure门户中导航到您的存储帐户概述。

  2. 在菜单栏上的Blob服务下,选择Blob。

  3. 选择要为其设置公共访问级别的容器。

  4. 使用“更改访问级别”按钮显示公共访问设置。

  5. 从“公共访问级别”下拉列表中选择所需的公共访问级别,然后单击“确定”按钮将更改应用于所选容器。