2016-09-15 120 views
0

我们在CloudFront上托管的网站目前尚未更新至近24小时。AWS CloudFront网站未更新

CloudFront失效更新了一些文件。我可以在S3上看到所有的文件已经更新。对这些文件执行GET我可以看到时间戳都是正确的,除了其中一个文件(JavaScript缩小文件,名为app.min.js),它仍然有一个旧的时间戳。但是,看S3,app.min.js文件具有正确的更新时间戳。强制文件没有缓存,app.min.js仍然反映旧文件。

有没有人对这里会发生什么有什么建议?

回答

1

你的文件仍然被缓存在某处。如果未在CloudFront中缓存,则可能会将其缓存在浏览器中或CloudFront和您之间的其他位置。

使CloudFront分布失效并不会使浏览器中的缓存失效。所以请确保您使用全新的浏览器来测试。更好的是,使用curl

  • 的Invalidate CloudFront的再次
  • 重新启动浏览器
  • 使用不同的浏览器
  • 使用不同的电脑
  • 使用curl避免本地缓存

做任何事情,以消除可能打击缓存版本。

另外:

  1. 加入“不缓存”到S3上的文件,将不会对在CloudFront的缓存版本有任何影响。您需要再次使缓存无效才能强制CloudFront获取新版本。
  2. CloudFront的默认TTL是24小时。所以一旦达到24小时,它应该从原点重新获取文件。您可以查看标题以查看TTL用完之前的时间。
+0

感谢您的帮助马特。好吧,我仍然困惑。使用'curl'我们可以获得最新版本,但通过任何浏览器和网络(试用家庭/工作计算机和不同的浏览器),文件不会更新。 –

+0

嗯,curl没有得到最新的请求头'Accept-Encoding:gzip,deflate,sdch,br'与Chrome使用的相同请求头文件 –

+0

Yah它可能是双重压缩文件,现在正在测试。我使用awpublish npm软件包在gulp'.pipe(awspublish.gzip({ext:''}))''中发布,并且cloudfront可能会再次进行压缩doh –