我已经按照 Microsoft 的文档在 Azure Blob 存储上成功搭建了一个静态网站,使用 $web
容器。此外,我将 index.html
同时定义为“索引文档名称”和“错误文档名称”。这是因为我希望我的 JavaScript 应用程序处理 404
响应。
然而,在 Chrome 浏览器的网络选项卡中查看时,我发现请求的 URL 会抛出 404
错误,尽管实际上页面是可以正常工作的。
我的理论如下:
- Azure 检查“文件”是否存在
- 如果文件存在,则返回该文件
- 如果文件不存在,则抛出
404
并将 URL 重写为“错误文档名称”,即我的情况下是index.html
(因此我的页面仍然可以正常工作)
问题在于我的 URL 是干净的 URL,例如:
/activities/some-slug
不会作为文件存在,它只是告诉我的 JavaScript 应用程序请求的路由,即加载哪个视图。
只是为了明确,页面能够正常工作,因为它仍然将 404
错误路由到 index.html
。
我们已经设置了Premium Verizon CDN,因为我最初不知道Azure Blob上的静态网站选项。如果CDN是最佳路径,请提供有关如何配置CDN以实现所需目标的说明。
我尝试/研究的内容: 我阅读了许多文章(特别是这篇文章中的评论),并且我认为可能有各种解决方案,例如Azure Functions、代理、CDN等。然而,没有一种方法提供明确的说明,告诉使用这些特定服务应该具体怎么做。
(我通常在AWS上工作,对Azure的所有服务和可用配置都不太熟悉。)