在Azure Blob存储上使用静态网站托管SPA选项(干净的URL和深层链接)

问题描述 投票:3回答:1

我已经按照Microsoft文档中的建议使用$web容器在Azure Blob存储上成功建立了静态网站。另外,我已经为both定义了index.html,即“索引文档名称”和“错误文档名称”。 这是因为我希望我的JavaScript应用程序处理404响应。

但是,尽管页面实际上在工作,但是当我在Chrome中查看“网络”标签时,可以看到我所请求的URL被抛出404

我的理论如下:

  • Azure检查“文件”是否存在
  • 如果文件存在,则将其返回
  • 如果文件不存在,它将抛出404并将URL重写为“错误文档名称”,即在我的情况下为index.html(因此我的页面仍然有效)

我的问题是我的URL是干净的URL,例如:

[/activities/some-slug永远不会以文件的形式存在,这只是告诉我的JavaScript应用程序将请求路由到哪里,即要加载的视图。

请注意,页面does工作,因为它仍将404错误路由到index.html

我如何告诉Azure blob将所有内容绝对路由到index.html,并在必要时让我的应用抛出404

我们确实已经设置了Premium Verizon CDN,因为我最初不知道Azure Blob上的静态网站选项。如果CDN是最好的路线,请您能提供有关如何配置CDN以提供我所寻找的内容的说明吗?

我尝试过/研究过的

我已经阅读了许多文章(特别是this one中的注释),并且我相信可能会有各种解决方案,例如Azure Functions,Proxy,CDN等。也就是说,没有一个提供关于如何使用这些特定服务的明确说明。 。

我通常在AWS上工作,所以对所有Azure服务和可用配置都不熟悉。

azure single-page-application azure-storage-blobs static-site azure-cdn
1个回答
0
投票

创建新规则

    条件:URL文件名“ Any”
  1. 操作:URL重写|源模式:“ /” |目的地:“ / index.html” |保留不匹配的路径:否
  2. 保存规则
  • 用自定义URL硬重载页面将返回状态代码200,并且路由正确。<<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly91c2VyLWltYWdlcy5naXRodWJ1c2VyY29udGVudC5jb20vMTY4NzY0MzUvNzMzOTE4MjQtOWMZYZNJWKZWJZHJWKZYKWJZHZYKWJZHZYKWJZHZYKNWJZHJWKZYKNJWKJWKZYKWJZHZYKWJZWJZHJWKZYKWJZYKWJZWKJWZJKYKWJZWKJWKJZKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJKJW
  • © www.soinside.com 2019 - 2024. All rights reserved.