【问题标题】:Django Compressor - CloudFront and manifest.jsonDjango Compressor - CloudFront 和 manifest.json
【发布时间】:2013-02-09 06:20:43
【问题描述】:

我在让 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?

【问题讨论】:

  • 您找到解决方案了吗?同样的问题。
  • 我也遇到了这个问题,但是我不明白为什么compress会通过静态URL而不是使用默认文件存储来访问manifest.json;如果是后者,则将直接访问 S3,并且不会出现缓存问题...假设客户端未使用 manifest.json。我还没有看到我的客户尝试访问它。

标签: amazon-cloudfront django-compressor


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-09-27
    • 2014-07-01
    • 1970-01-01
    • 2015-04-05
    • 1970-01-01
    • 2012-09-24
    • 2011-12-06
    • 2015-08-22
    • 1970-01-01
    相关资源
    最近更新 更多