要查看静态网站在Azure存储中的工作方式,我创建了一个基本的angular应用程序,并将dist文件夹中的文件上传到静态网站。但是,当我尝试访问URL时,我收到一条404错误消息,内容为: “ 请求的内容不存在”。
此外,我可以看到文件位于$web
路径下,但是当我单击文件URL <azurestorageurl>/$web/index.html
时,浏览器会抛出错误消息“ 找不到资源 “。
答案 0 :(得分:3)
我在Azure存储帐户静态站点上托管Angular应用时遇到了类似的问题,当重新加载页面或通过URL导航时出现以下错误。我必须将Angular Router设置为使用HashLocationStrategy而不是默认策略。另外,由于我使用的是ASP样板(ASPNetZero),因此必须将其添加到RootRoutingModule。
现在,通过手动更改URL,这对于我来说是刷新和导航的工作。
答案 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
来解决。