我試圖設置django-compressor和django-staticfiles,以便壓縮的CSS/Javascript和圖像從亞馬遜的S3提供。如何用Amazon S3配置django-compressor和django-staticfiles?
我設法使用S3作爲後端安裝靜態文件,所以它的collectstatic
命令將文件發送到S3而不是STATIC_ROOT
。
然而,當試圖將django-compressor
添加到混音中的時候,它似乎對我來說都是破碎的。繼documentation設置遠程存儲後,我創建了存儲後端的子類boto,因此我將example複製到。一旦我開始使用這個緩存的後端,文件被複制到static_media而不是S3。第一頁加載後,CACHE文件夾出現在S3和static_media文件夾中。
設置STATICFILES_STORAGE
和COMPRESS_STORAGE
回到博託正常S3級(storages.backends.s3boto.S3BotoStorage
)導致靜態資產被收集到S3存儲和無static_media文件夾。然而在重新加載頁面引發錯誤:
Caught NotImplementedError while rendering: This backend doesn't support absolute paths.
突出{% compress css %}
爲標籤和compressor/base.py
爲原點。
的S3/staticfiles /壓縮機我settings.py
的部分:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'key'
AWS_SECRET_ACCESS_KEY ='secret'
AWS_STORAGE_BUCKET_NAME = 'my-bucket'
S3_URL = 'http://my-bucket.s3.amazonaws.com/'
MEDIA_ROOT = 'client_media'
MEDIA_URL = '/media/'
STATIC_ROOT = 'static_media'
STATIC_URL = S3_URL
ADMIN_MEDIA_PREFIX = S3_URL + 'admin/'
STATICFILES_DIRS = (
join(DIRNAME, 'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'compressor.finders.CompressorFinder',
)
COMPRESS_ENABLED = True
COMPRESS_URL = S3_URL
COMPRESS_ROOT = STATIC_ROOT
COMPRESS_STORAGE = 'storage.CachedS3BotoStorage'
STATICFILES_STORAGE = COMPRESS_STORAGE
所以,我該怎麼錯在何處?我可以在使用CachedS3BotoStorage
自定義存儲時錯誤配置某些內容嗎?