我按照在SO和不同博客中找到的每个QA建议,在我的开发机器上一切正常,在heroku上没有任何作用.
这是我的设置:
DEFAULT_FILE_STORAGE = 'arena.utils.MediaRootS3BotoStorage' # media files # storage AWS_ACCESS_KEY_ID = os.environ.get('AWS_ACCESS_KEY_ID') AWS_SECRET_ACCESS_KEY = os.environ.get('AWS_SECRET_ACCESS_KEY') AWS_STORAGE_BUCKET_NAME = os.environ.get('AWS_STORAGE_BUCKET_NAME') AWS_PRELOAD_METADATA = True # necessary to fix manage.py collectstatic command to only upload changed files instead of all files S3_URL = 'https://%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME MEDIA_URL = S3_URL + '/media/' STATIC_URL = S3_URL + '/static/' ADMIN_MEDIA_PREFIX = STATIC_URL + 'admin/' COMPRESS_URL = STATIC_URL COMPRESS_OFFLINE = True COMPRESS_STORAGE = 'utils.CachedS3BotoStorage' STATICFILES_STORAGE = COMPRESS_STORAGE
当我运行collectstatic/compress时,一切正常,我看到文件被收集到S3并放入适当的位置.我看到了清单文件.
加载任何带有压缩标签的页面,显示错误再次OfflineGenerationError: You have offline compression enabled but key "d2a53169c44dec41ce3ee7da19b2b9d4" is missing from offline manifest.
运行python manage.py compress
不会解决任何问题.当我检查清单文件时,它确实找不到的密钥.
这里出了什么问题?
问题我已经检查过了:
如何使用亚马逊的S3配置django-compressor和django-staticfiles?
带有S3 URL Heroku的Django Compressor
使用远程存储配置django-compressor(django-storage - amazon s3)