我有一个连接到 blob 存储的 Azure CDN(Verizon,高级)。基于此中的步骤 6,我制定了 2 条规则tutorial https://blog.lifeishao.com/2017/05/24/serving-your-static-sites-with-azure-blob-and-cdn。这些规则旨在在调用 CDN 的根时强制 CDN 提供“index.html”服务。它们可能与问题相关,也可能无关,但在步骤 6 中描述如下:
- 确保下拉菜单显示“如果”和“始终”
- 单击“功能”旁边的“+”按钮两次。
- 将两个新创建的下拉菜单设置为“URL Rewrite”
- 将所有源和目标下拉列表设置为您创建的端点(带有端点名称的值)
- 对于第一个源模式,设置为 ((?:[^\?]/)?)($|\?.)
- 对于第一个目标模式,设置为 $1index.html$2
- 对于第二个源模式,设置为 ((?:[^\?]/)?[^\?/.]+)($|\?.)
- 对于第二个目标模式,设置为 $1/index.html$2
我最初将文件上传到 Blob 存储,能够通过 CDN 访问它们(证明上述规则正常工作),然后对本地文件进行更改(调试)以上传到 Blob 存储。更新 Blob 存储上的所有文件并选中“全部清除”选项手动清除 CDN 端点后,CDN 为我提供旧文件,并在直接访问 Blob 存储时为我提供新文件。这似乎对每个文件都会发生(即使直接点击文件,而不仅仅是index.html)。在等待约 10 小时、清除浏览器缓存并尝试以前从未使用过的浏览器访问 CDN 后,这种情况仍然会发生。
有谁知道可能会发生什么?它是否缓存在我的网络和 CDN 端点之间的某个位置?我觉得我可能错过了一些非常简单的事情......
编辑 1:我有另一个 Verizon(非高级)CDN 连接到同一个存储容器,它在清除后拾取正确的文件;然而,即使现在(24 小时后),高级 CDN 仍不提供更新的文件。
编辑 2:致电 Microsoft 支持 Azure,他们花了大约 6 个小时进行调查,但没有结果。我们最终再次尝试清除,现在正在发送更新的文件。仍然不确定问题是什么。
在与 Microsoft 和 Verizon Digital Media 支持人员合作数周后,他们终于找到了解决方案。
为了避免干扰清除过程,最简单的方法是在规则的“功能”部分之前实现以下“IF”语句:
如果|请求标头通配符|名称 |用户代理 |不匹配|价值观 | ECPurge/* | |忽略大小写(选中)
对于使用清除用户代理发出的请求,此 if 语句将完全跳过此规则,从而允许请求正常到达 CDN。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)