2013-05-18 5 views
1

У меня установлена ​​ведро AWS S3 для переноса моих статических файлов в удаленном CDN с помощью приложения django-storageages, все работало нормально, пока Я пытался сжать мои статические файлы перед загрузкой на S3 с помощью django_compressor.Ошибка при попытке сжимать статические файлы при использовании django-хранилищ и django-compress вместе

У меня есть настройки все переменные в соответствии django_compressor документации для Джанго-хранилищ (https://django_compressor.readthedocs.org/en/latest/remote-storages/index.html)

Я загрузил все файлы в S3 с помощью «manage.py collectstatic», то:

Когда я «управлять .py сжать Я получаю эту ошибку:

CommandError: An error occured during rendering ../templates/base.html: 'https://my_bucket.s3.amazonaws.com/css/bootstrap.2.3.1.css' isn't accessible via COMPRESS_URL ('https://my_bucket.s3-external-3.amazonaws.com/') and can't be compressed 

Что случилось с моей установки?

Вот моя конфигурация settings.py для Джанго-хранилищ и django_compressor:

COMPRESS_URL = 'https://mybucket_name.s3-external-3.amazonaws.com/' 
STATIC_URL = COMPRESS_URL 
DEFAULT_FILE_STORAGE = 'my_project.boto_custom.CachedS3BotoStorage' 

AWS_ACCESS_KEY_ID = 'XXX' 
AWS_SECRET_ACCESS_KEY = 'XXX' 
AWS_STORAGE_BUCKET_NAME = 'mybucket_name' 

COMPRESS_ROOT = STATIC_ROOT 

COMPRESS_STORAGE = 'my_project.boto_custom.CachedS3BotoStorage' 
STATICFILES_STORAGE = 'my_project.boto_custom.CachedS3BotoStorage' 

COMPRESS_OFFLINE = True 

Спасибо за вашу помощь

ответ

5

Я установил ее, добавив одну переменную, и она работала:

AWS_S3_CUSTOM_DOMAIN = 'my_bucket.s3-external-3.amazonaws.com' 
1

Если у вас есть отдельные ведра S3 для статического и среднего носителя, вы также можете поместить его в свой подкласс S3BotoStorage следующим образом:

class CachedS3BotoStorage(S3BotoStorage): 
    custom_domain = 'my_bucket.s3-external-3.amazonaws.com' 

(или еще лучше установить его в settings.AWS_S3_CUSTOM_STATIC_DOMAIN или что-то)