我遵循了在Stack Overflow和不同博客中发现的所有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并放置在正确的位置。我能看到清单文件。
使用compressor标签加载任何页面时,会显示错误OfflineGenerationError: You have offline compression enabled but key "d2a53169c44dec41ce3ee7da19b2b9d4" is missing from offline manifest.
再次运行python manage.py compress
没有解决问题。当我检查清单文件时,确实找不到它所寻找的密钥。
这里出了什么问题?
我已经检查过的问题:
如何配置django-compressor和django-staticfiles与亚马逊的S3?
Django Compressor with S3 URL Heroku
配置具有远程存储(django-storage - amazon s3)的django压缩机
manage.py compress
命令时,它无法看到动态添加的文件,并且无法压缩它们。 - Jacob Valentamanage.py compress
在Heroku上可以工作,没有抛出任何错误,但是当我尝试加载页面时,每次都会得到相同的错误。就好像它无法读取清单或其他东西一样。 - Neara