我在让django压缩器与CloudFront一起工作时遇到了一些麻烦。我正在运行offline compress命令来生成我的压缩文件和manifest.json文件。在此之后,我运行collectstatic将压缩文件上传到我的S3存储桶。
然后从CloudFront提供这些静态文件,因此我的设置如下所示:
STATIC_ROOT = ''
STATIC_URL = 'http://<my-cloudfront-domain>/somebucket/'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
COMPRESS_OFFLINE = True
问题是,CloudFront正在提供旧版本的manifest.json,这意味着压缩器正在抛出一个OfflineGenerationError。
即使有一个缓存后端,我担心如果缓存服务器出于某种原因离线/刷新我的清单文件将是不正确的。
我在这里遗漏了一些东西以确保我没有遇到OfflineGenerationError吗?
答案 0 :(得分:0)
顺便说一下,Amazon CloudFront的工作原理是,您需要通过提供同一文件的“版本”来显式无效文件,或者只是放弃并使用新名称。早期删除看起来很昂贵并且需要付费。
尝试从AWS控制台上传manifest.json
并为同一文件设置新版本。它会在不删除文件的情况下更新CloudFront端点。
来源:http://aws.amazon.com/en/cloudfront/(对象版本控制和缓存失效主题)