我有一个AWS的Cloudfront分布坐在一个S3存储桶承载静态网站的前面。我每次部署,我使用无效的create-invalidation --distribution-id $CDN_DISTRIBUTION_ID --paths "/*"
命令,它似乎已成功运行使用AWS CLI中的Cloudfront发行。
问题是,它似乎并没有失效。如果我打开Chrome的生产现场,我受够了旧版本的网站,如果我在一个没有历史,我担任我所期待的最新版本的隐身浏览器中打开。
我需要一些帮助理解什么是一些潜在的可能,所以我知道去哪里找。
如果您正在使用“的index.html”中S3为您的索引文件,但使用的路径,而他自己的index.html,你需要使用的路径没有在他们的index.html用的Cloudfront的无效。
所以,如果你有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
这将覆盖失效两种情况。