AWS Cloudfront未获取我的最新版本的javascript文件

时间:2016-11-08 04:47:12

标签: amazon-s3 amazon-cloudfront

我正在为我的javascript和css文件实施AWS Cloudfront版本控制,以便自动更新Cloudfront缓存,这样我就不必手动使我的文件无效。我在S3中托管静态网站内容。我部署新更改的过程如下。使用webpack构建网站,自动哈希我的js和css文件。 Web包还更新了我的index.html文件中对js和css文件的引用(不是这个文件没有版本化)。然后,我将新生成的静态网站从我的dist文件夹复制到我的S3存储桶。根据文档,我应该自动看到我的更改,而不必使分发中的每个文件无效,但我没有。我想知道我是否错过了一步。起初我认为index.html可能需要进行版本控制,但文档明确指出不要对根文档对象进行版本控制。所以我的问题是......我错过了什么?具有新版本的js和css文件的index.html文件是否也需要进行版本控制?如果是这样我怎么能做到这一点?

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ReplacingObjects.html

第46页:https://d0.awsstatic.com/whitepapers/Storage/Building%20Static%20Websites%20on%20AWS.pdf

1 个答案:

答案 0 :(得分:0)

我为此苦了很长时间。最终,我发现以下工作有效:

  1. 将新文件上传到s3
  2. 使Cloundfront分布无效
  3. 将缓存控制设置添加到index.html

对于最后一步,您可以使用AWS CLI:

aws s3 cp s3://bucket/index.html s3://bucket/index.html 
--metadata-directive REPLACE --cache-control max-age=0