5

我在让 django 压缩器与 CloudFront 一起工作时遇到了一些麻烦。我正在运行离线压缩命令来生成我的压缩文件和 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?

4

1 回答 1

0

顺便说一下 Amazon CloudFront 的工作方式,您需要通过提供同一文件的“版本”来显式地使文件无效,或者干脆放弃并使用新名称。提前删除看起来代价高昂并且需要付费。

尝试manifest.json从 AWS 控制台上传您的文件并为同一文件设置新版本。它会在不删除文件的情况下更新 CloudFront 端点。

来源:http ://aws.amazon.com/en/cloudfront/ (对象版本控制和缓存失效主题)

于 2013-03-21T06:32:32.253 回答