我有一个SPA(用角度构建),并已部署到Azure Blob存储。当您从默认域中运行时一切正常,但当我刷新任何页面/路由时,index.html不再加载,而是出现错误“请求的内容不存在”
搜索该词总共有3个结果,所以我迷茫地尝试诊断和解决这个问题。
答案 0 :(得分:2)
对于我来说,将index.html页添加为Error document页面对通过url进行导航没有帮助,因为它仍然会重新加载应用程序。我在其他地方发布了一个答案,该答案与使用Angular HashLocationStrategy有关,并且在手动更改URL时不会导致页面重新加载。
答案 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 CDN和Control Azure CDN caching behavior with caching rules。
在这种情况下,您可以确保网站Blob内容在Internet上公开可用。之后,您可以验证原始设置是否正确配置。验证原始类型和原始主机名的值正确。确认您的静态网站正在侦听HTTP和HTTPS端口。请从该疑难解答链接中获取更多详细信息。
答案 4 :(得分:0)