我遵循在SO和不同博客上發現的每個QA建議,在我的開發機器上一切正常,在heroku上沒有任何工作。如何在heroku上設置django-compressor,離線壓縮到S3
這裏是我的設置:
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 /壓縮一切都很好,我看到這些文件收集到S3,放在適當的地方。我看到清單文件。
用壓縮標籤載入任何頁面,顯示錯誤OfflineGenerationError: You have offline compression enabled but key "d2a53169c44dec41ce3ee7da19b2b9d4" is missing from offline manifest.
運行python manage.py compress
再次解決任何問題。當我檢查清單文件時,確實找到的關鍵字不存在。
這裏怎麼回事?
的問題,我已經檢查:
How to configure django-compressor and django-staticfiles with Amazon's S3?
Django Compressor with S3 URL Heroku
Configuring django-compressor with remote storage (django-storage - amazon s3)
我認爲這與您如何添加l有關ess文件到您的模板。我在開發中動態添加了它們,這很好。當您使用'manage.py compress'命令時,它看不到動態添加的命令,並且無法壓縮這些命令。 –
@JacobValenta我沒有更少的模板文件。我有一個編譯器可以在Pycharm中的每一次保存時自動運行。 '管理。py compress「在heroku上工作,不會拋出任何錯誤,但是當我嘗試加載頁面時,每次都會收到相同的錯誤。就好像它不能讀取清單或 – Neara