将 Azure 静态网站配置为不需要尾部斜杠

问题描述 投票:0回答:2

我有一个配置为静态网站的 Azure 存储帐户。静态网站包含一个名为“versions”的子目录,其中包含该网站的几个其他版本。我可以显示这些版本,但它需要尾部斜杠,这显然不理想,因为大多数人不使用它们。

例如,假设我的静态网站的 URL 是 https://mystorageaccount.z8.web.core.windows.net...

我假设这是因为静态网站正在尝试提供服务https://mystorageaccount.blob.core.windows.net/%24web/versions/1.2.3index.html,但是有没有办法可以配置静态网站不需要尾部斜杠?

我确实尝试指定

/index.html
作为索引文档,但静态网站配置不允许这样做。

如果指定,索引文档名称的长度必须在 3 到 255 个字符之间,并且不得包含任何“/”字符。

azure azure-storage azure-blob-storage
2个回答
1
投票

几天前我遇到了这个问题,发现这个非常旧的帖子没有得到答复,所以这是我的 5 美分。

这是由于 Azure 静态 Web 应用程序中的错误造成的,无论它们是在 Blob 存储内还是在不那么闪亮的新静态 Web 应用程序服务中。这就是为什么使用或不使用 CDN 服务并不相关。

简言之,问题是 Azure 静态 Web 应用程序不会在 url 末尾添加尾部斜杠,这使得无法正确链接页面的资源(脚本、图像、字体、样式等),因为它最终会在父文件夹中查找文件夹。

此处解释了该问题https://github.com/Azure/static-web-apps/issues/42

解决方法

确保在任何链接上添加尾部斜杠或

使用绝对 URL 而不是相对 URL。


0
投票

今天遇到这个问题,解决方案是在 Azure Front Door 中创建一条规则来匹配任何不以“/”结尾、不以文件扩展名结尾且不为空的请求路径(主机后面的 URL 部分) (因此它与对根 somesite.domain.com 的请求不匹配,其中不包含请求路径)。然后,将 URL 重定向到当前请求路径并加上尾随“/”。

规则截图

© www.soinside.com 2019 - 2024. All rights reserved.