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

时间:2019-05-09 10:40:57

标签: azure azure-storage azure-storage-files

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

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

enter image description here

3 个答案:

答案 0 :(得分:3)

我在Azure存储帐户静态站点上托管Angular应用时遇到了类似的问题,当重新加载页面或通过URL导航时出现以下错误。我必须将Angular Router设置为使用HashLocationStrategy而不是默认策略。另外,由于我使用的是ASP样板(ASPNetZero),因此必须将其添加到RootRoutingModule。

现在,通过手动更改URL,这对于我来说是刷新和导航的工作。

Angular Hash Location Strategy

404 Error on webpage

useHash on RootRouting Module

答案 1 :(得分:1)

出现此错误的原因是因为$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就会出现。

答案 2 :(得分:0)

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

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

enter image description here

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