Han*_*lse 6 url-rewriting azure azure-cdn azure-storage-account angular
在过去的几天里,我一直在努力解决以下问题,由于CDN的本质和每个新规则的手动审查,我每次最多需要4小时才能部署新规则.
如下面的主题所述,我目前将我的Angular应用程序部署到一个存储帐户,该帐户有一个名为的blob容器cdn
在此blob容器的根目录中,我的角度项目中的整个文件夹已通过我的CI设置进行复制.dist
CDN配置文件也已设置,指向origin-path被叫/cdn
不幸的是,目前存在一个持续存在的问题,即您无法直接访问默认文件.
我已经看过关于这个问题的各种帖子,但没有一个答案似乎涵盖我的情况或没有提供预期的结果.
目前我正在使用Verizon 的Azure CDN的规则引擎功能.
关于模式,我使用了下文中提到的所有模式,包括评论中提到的模式.
我还花了至少两天的时间来查找各种其他文章和stackoverflow文章,但它们都没有适合我的情况.
此外,我还创建了自己的正则表达式模式,但是虽然它们在我的测试环境中工作,但一旦将它们部署到CDN,它们就会工作.
我通常最终得到以下结果之一:
https://myFancyWebsite.azureedge.net不会重写网址index.html,我会收到一个http错误404index.html但是一旦我添加了网址路径就会停止工作https://myFancyWebsite.azureedge.net/login/callback- 一旦404我开始使用,就会再次出现http错误/login/callbackhttps://myFancyWebsite.azureedge.net/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn/cdn ....http错误的内容431微软的官方文档在我的案例中也没有帮助.
我很确定我不是第一个将Angular应用程序部署到存储帐户的人,并且有人遇到了与我相同的问题.
我感谢所有指出正确方向的信息,因为目前我肯定会考虑放弃整个存储帐户部署.
使用此处的文章中也提到的以下source模式,我能够处理至少顶级域重写到文件.((?:[^\?]*/)?)($|\?.*)index.html
不幸的是,我还需要一个额外的模式来重定向https://myFancyWebsite.azureedge.net/login/callback到https://myFancyWebsite.azureedge.net/index.html
我目前正在每天更新一次或两次正则表达式模式,并再一次在我的测试环境中工作,但一旦我部署它就停止工作.我开始相信Azure CDN会在顶级域名之后向URL添加内容,但我不知道如何验证.
https://regex101.com/r/KK0jCN/23
我们写的是3025年,我仍然不知道为什么例如以下模式没有处理顶级域的url重写.
小智 11
[^?.]*(\?.*)?$.此模式捕获其中的URL路径.,但不关心它是否在查询字符串中.origin_path/document.ext.这是棘手的部分.Path与原始根相对.例如,如果您的CDN端点的原始路径是/origin_path并且您想要重定向到index.html,则应输入origin_path/index.html.如果您的CDN由Azure存储帐户支持且原点指向容器,则始终如此.| 归档时间: |
|
| 查看次数: |
3070 次 |
| 最近记录: |