Azure 存储静态网站错误 - 找不到资源或内容不存在

Azure Storage Static website error - Resource not found or content doesn't exist

为了了解静态网站如何在 Azure 存储中工作,我创建了一个基本的 angular 应用程序并将 dist 文件夹中的文件上传到静态网站。但是当我尝试访问 URL 时,我收到一条 404 错误消息,内容为 “请求的内容不存在”。

此外,我可以看到文件存在于 $web 路径下,但是当我单击文件 URL <azurestorageurl>/$web/index.html 时,浏览器会抛出一条错误消息“找不到资源”。

.

您收到此错误的原因是 $web blob 容器的 ACL 默认为 Private

请将 ACL 更改为 Blob(推荐)或 Container,您应该不会看到此错误。

更新

所以我联系了 Azure 存储团队并提请他们注意这个问题。他们很友好地向我解释了这种行为。

本质上,如果您通过静态网站端点(例如 account.z5.web.core.windows.net)访问静态网站的内容,则无需更改 blob 容器的 ACL。即使 $web 的 ACL 是 Private,内容也应该是可访问的。当您通过 blob 存储端点(例如 account.blob.core.windows.net)访问内容时,Blob 容器的 ACL 就会出现。

我在 Azure 存储帐户静态站点上托管 Angular 应用程序时遇到了非常相似的问题,在重新加载页面或按 URL 导航时出现以下错误。我必须将 Angular 路由器设置为使用 HashLocationStrategy 而不是默认策略。另外,因为我使用的是 ASP 样板文件 (ASPNetZero),所以我不得不将它添加到 RootRoutingModule。

我现在可以通过手动更改 URL 来刷新和导航。

Angular Hash Location Strategy

我也遇到了类似的错误并通过将 index.html 添加到 Index document name 来修复它。

  1. 登录到 Azure 门户以开始使用。
  2. 找到您的存储帐户并显示帐户概览。
  3. Select静态网站显示静态网站的配置页面。
  4. Select 启用为存储帐户启用静态网站托管。
  5. 在索引文档名称字段中,指定默认索引页(例如:index.html)。
  6. 当用户导航到您的静态网站的根目录时,将显示默认索引页面。
  7. 在错误文档路径字段中,指定默认错误页面(例如:404.html)。
  8. 当用户尝试导航到您的静态网站中不存在的页面时,将显示默认错误页面。
  9. 点击保存。

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website-how-to?tabs=azure-portal