WebContentNotFound位于以CDN部署为Azure Blob静态网站的SPA的刷新页面上

时间:2019-04-02 15:39:51

标签: azure azure-storage azure-storage-blobs azure-blob-storage

我有一个SPA(用角度构建),并已部署到Azure Blob存储。当您从默认域中运行时一切正常,但当我刷新任何页面/路由时,index.html不再加载,而是出现错误“请求的内容不存在”

搜索该词总共有3个结果,所以我迷茫地尝试诊断和解决这个问题。

5 个答案:

答案 0 :(得分:2)

对于我来说,将index.html页添加为Error document页面对通过url进行导航没有帮助,因为它仍然会重新加载应用程序。我在其他地方发布了一个答案,该答案与使用Angular HashLocationStrategy有关,并且在手动更改URL时不会导致页面重新加载。

Answer on other SO question

答案 1 :(得分:1)

实际上是我没有定义404.html的问题-SPA的Blob存储不了解要为根目录以外的任何其他路径服务的文件。因此,所有其他路由都将转到404文件。但是在SPA中,甚至404也会通过索引文件。因此,我要做的只是将index.html提及为我的404文件,一切都很好。

答案 2 :(得分:1)

Microsoft提供了一个新的静态Webapps解决方案。它目前处于预览模式,但是我认为这是在Azure基础结构中使用/部署SPA的最方便的方法。您可以将您的自定义域与免费的SSL,版本控制结合使用,并设置一条路由,以将所有内容重定向到index.html(例如,备用路由:https://docs.microsoft.com/en-us/azure/static-web-apps/routes)。在此处查看更多详细信息:https://docs.microsoft.com/en-us/azure/static-web-apps/

答案 3 :(得分:0)

通常,您已经创建了一个CDN配置文件和一个端点,但是您的内容似乎在CDN上不可用。尝试通过CDN URL访问您的内容的用户将收到HTTP 404状态代码。您可以在troubleshooting Azure CDN endpoints that return a 404 status code

中遵循这些方法

有几种可能的原因,包括:

  

CDN不可见文件的来源。端点是   配置错误,导致CDN放在错误的位置。主持人是   拒绝CDN中的主机头。端点没有时间   传播到整个CDN。

使用CDN,在初始请求时,客户端直接访问原始服务器,此后,在以下请求中,当您刷新页面时,客户端向CDN高速缓存服务器请求直到其生存时间(TTL )过去。参见Manage expiration of Azure Blob storage in Azure CDNControl Azure CDN caching behavior with caching rules

在这种情况下,您可以确保网站Blob内容在Internet上公开可用。之后,您可以验证原始设置是否正确配置。验证原始类型和原始主机名的值正确。确认您的静态网站正在侦听HTTP和HTTPS端口。请从该疑难解答链接中获取更多详细信息。

答案 4 :(得分:0)

您只需将错误页面配置为index.html enter image description here