【问题标题】:Error using django-compressor and AWS CloudFront使用 django-compressor 和 AWS CloudFront 时出错
【发布时间】:2014-09-27 00:35:32
【问题描述】:

我已经成功地使用django-compressor 和django-storages 在 Django 1.6 中管理我的静态文件的压缩和部署。我现在正在尝试使用 AWS CloudFront 来提供我的静态文件。

我按照default_storage.exists extremely slow and frequently times out 此处的说明进行操作,我的settings.py 文件如下所示:

COMPRESS_ENABLED = True

STATIC_ROOT = os.path.join(
    os.path.dirname(
        os.path.dirname(
            os.path.abspath(__file__))), 'static')
COMPRESS_ROOT = STATIC_ROOT

COMPRESS_OFFLINE = True

COMPRESS_URL = "https://compressor-test.s3.amazonaws.com/"
STATIC_URL = COMPRESS_URL

COMPRESS_STORAGE = 'mysite.storage.CachedS3BotoStorage'
STATICFILES_STORAGE = COMPRESS_STORAGE

AWS_STORAGE_BUCKET_NAME = 'compressor-test'
AWS_S3_CUSTOM_DOMAIN = '1234567.cloudfront.net'

但我收到以下错误:

Exception Type:     UncompressableFileError
Exception Value:    

'https://1234567.cloudfront.net/bootstrap/css/bootstrap.min.css' isn't accessible via COMPRESS_URL ('https://compressor-test.s3.amazonaws.com/') and can't be compressed

我需要将 COMPRESS_URL 指向 CloudFront 吗?

【问题讨论】:

  • 你可以手动访问文件吗?
  • 是的,如果我将完整的 url 粘贴到地址栏中,它会打开正确的文件。
  • 我不记得为什么了,但我现在记得这个问题之前在 stackoverflow 中被问过。你可以重新搜索。

标签: django boto amazon-cloudfront django-storage django-compressor


【解决方案1】:

尝试将您的 COMPRESS_URL 指向云端,应该可以解决问题

【讨论】:

    【解决方案2】:

    要将静态文件写入 S3,但从 Cloudfront 读取,请使用:

    AWS_S3_CUSTOM_DOMAIN = 'yourdistribution.cloudfront.net'

    Related django-compressor issue on GitHub.

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 2017-04-11
      • 2013-05-13
      • 1970-01-01
      • 2011-12-06
      • 2015-11-06
      • 2015-08-22
      • 1970-01-01
      • 2015-04-05
      相关资源
      最近更新 更多