gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 21:01:42 25 4
gpt4 key购买 nike

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

但是,当查看 Chrome 中的网络选项卡时,我可以看到我请求的 URL 抛出 404,尽管该页面实际上正在运行。

我的理论如下:

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

我遇到的问题是我的网址是干净的网址,例如:

/activities/some-slug 永远不会作为文件存在,这只是告诉我的 JavaScript 应用程序将请求路由到哪里,即加载哪个 View 。

需要明确的是,该页面确实可以正常工作,因为它仍然将 404 错误路由到 index.html

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

我们确实已经设置了高级 Verizon CDN,因为我最初并不知道 Azure Blob 上有静态网站选项。如果 CDN 是最佳路线,请提供有关如何配置 CDN 来提供我正在寻找的内容的说明?

我尝试/研究过的内容

我读过很多文章(特别是 this one 中的评论),我相信可能有各种解决方案,即 Azure Functions、代理、CDN 等。也就是说,没有一个提供明确的说明来说明如何实际处理这些特定的问题服务。

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

最佳答案

我想我找到了解决方案

  1. 添加新规则
  2. 条件:URL 文件扩展名

    a.运算符:小于

    b.扩展名:1

    c.大小写转换:无转换

    [这基本上意味着请求的 URL 没有文件(扩展名),而是应用程序的路由,将由应用程序路由处理]

  3. 操作:URL 重写

    a.源码模式:/

    b.目的地:/index.html

    c.保留不匹配的路径:否

  4. 保存规则

Screenshot .

关于azure - 在 Azure Blob 存储上使用静态网站选项托管 SPA(干净的 URL 和深层链接),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59072306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com