我有一个AWS Cloudfront发行版位于托管静态网站的S3存储桶的前面。每次部署时,我都会使用create-invalidation --distribution-id $CDN_DISTRIBUTION_ID --paths "/*"
命令(似乎已成功运行)使用AWS CLI使Cloudfront发行版无效。
问题在于它似乎没有失效。如果我在Chrome上打开生产网站,则表示该网站是旧版本,如果我在没有历史记录的隐身浏览器中打开,则将按预期提供最新版本。
我需要一些帮助,以了解可能的潜力,以便知道在哪里寻找。
答案 0 :(得分:0)
如果您在S3中使用“ index.html”作为索引文档,但使用的路径中没有index.html,则需要使用Cloudfront无效的路径中没有index.html的路径。
因此,如果您在s3上具有以下路径:
/some/path/index.html
您正在像这样在Cloudfront上访问此文件:
http://example.com/some/path/
然后,您将需要执行此无效操作:
aws cloudfront create-invalidation --distribution-id ${YOUR_DIST_ID} --paths /some/path/
因此,基本上,您需要使浏览器将使用的路径无效,而不是使S3使用的路径无效。
如果您的网址中未使用斜杠,那么如果没有斜杠,您可能会无效。亚马逊还表示,如果您尚未标准化,则应同时进行。
因此,在这种情况下,您可以这样做:
aws cloudfront create-invalidation --distribution-id ${YOUR_DIST_ID} --paths /some/path/ /some/path
这将涵盖无效的两种情况。