Django Cloudfront提供的内容似乎比';S3中的s

Django Cloudfront提供的内容似乎比';S3中的s,django,amazon-s3,amazon-cloudfront,Django,Amazon S3,Amazon Cloudfront,我有一个Django应用程序,它将静态文件存储在s3中,并使用Cloudfront作为CDN来提供这些文件。我最近更新了一个js文件,并将其部署到为CDN提供内容的s3存储桶中。我验证了s3中的内容是正确的,并且上传时间都是合理的。尽管如此,Cloudfront仍继续提供较旧版本的文件(10小时后)。如何处理这个问题?这是因为CloudFront提供的文件是缓存的 解决这个问题的一个简单方法是将上次修改日期的时间戳附加到文件的url,这将导致CloudFront重新缓存文件,或者您可以在文件本身

我有一个Django应用程序,它将静态文件存储在s3中,并使用Cloudfront作为CDN来提供这些文件。我最近更新了一个js文件,并将其部署到为CDN提供内容的s3存储桶中。我验证了s3中的内容是正确的,并且上传时间都是合理的。尽管如此,Cloudfront仍继续提供较旧版本的文件(10小时后)。如何处理这个问题?

这是因为CloudFront提供的文件是缓存的

解决这个问题的一个简单方法是将上次修改日期的时间戳附加到文件的url,这将导致CloudFront重新缓存文件,或者您可以在文件本身的名称中输入版本号。我采用版本号方法


如果不更改文件名或URL,则在满足expires标头日期之前,您将获得缓存的版本。

您能否详细介绍Django中版本控制的工作方式?我可以在静态URL中添加版本控制吗?没那么复杂。我只是在文件名本身中使用一个版本号,比如:
home-2.1.css
,然后将其更改为
home-2.2.css
,这会导致CloudFront为该文件创建一个新的缓存项。此外,如果您使用的是django compressor,任何被压缩的文件的修改日期时间都会发生变化,django compressor创建的文件名散列将更改,从而使缓存无效。