2013-09-24 1 views
5

Я пытаюсь обслуживать файлы gzip с amazon s3. Это мой settings.py:Компрессор Django с использованием gzip для обслуживания javascript

AWS_IS_GZIPPED = True 
AWS_PRELOAD_METADATA = True 
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
AWS_STORAGE_BUCKET_NAME = 'elasticbeanstalk-eu-west-1-2051565523' 
STATIC_URL = 'https://%s.s3.amazonaws.com/' % AWS_STORAGE_BUCKET_NAME 
COMPRESS_OFFLINE = True 
COMPRESS_ENABLED = True 
COMPRESS_URL = STATIC_URL 
COMPRESS_CSS_FILTERS = [ 
    'compressor.filters.css_default.CssAbsoluteFilter', 
    'compressor.filters.cssmin.CSSMinFilter' 
] 
COMPRESS_JS_FILTERS = [ 
    'compressor.filters.jsmin.JSMinFilter', 
] 
COMPRESS_STORAGE = 'compressor.storage.GzipCompressorFileStorage' 

Когда я делаю это Джанго создает * .gz файлы для каждого * .js и * .css сжат, но странно только * .css файлы служили Gzip. Я могу видеть на aws s3, что файлы .css имеют Content-Encoding: gzip и * .js этого не делают. Что здесь происходит?

+0

Могу ли я спросить, почему вы определяете 'COMPRESS_STORAGE' дважды? –

+0

@MarcusLind Я редактировал вопрос. Спасибо за звонок –

ответ

4

У меня был тот же вопрос и был в состоянии решить эту проблему путем добавления text/javascript к GZIP_CONTENT_TYPES настройки, как так:

GZIP_CONTENT_TYPES = (
    'text/css', 
    'application/javascript', 
    'application/x-javascript', 
    'text/javascript' 
) 

Я не знаю, почему, но значение по умолчанию GZIP_CONTENT_TYPES в django-storages==1.1.8 не кажется для включения text/javascript, поэтому кажется, что django-compressor пропускает GZIP для сжатых .JS-файлов с этим типом контента.

См: http://code.larlet.fr/django-storages/src/e27c8b61ab57e5afaf21cccfee005c980d89480f/storages/backends/s3boto.py?at=default#cl-236

 Смежные вопросы

  • Нет связанных вопросов^_^