2013-09-24 3 views
5

Ich versuche, Gzip-Dateien von Amazon S3 zu dienen. Das ist mein settings.py:Django Kompressor mit Gzip zu bedienen 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' 

Wenn ich dies tun django für alle * Js * .gz-Dateien erstellt und * .css komprimiert aber seltsamerweise nur die * .css-Dateien werden als gzip serviert. Ich kann auf der aws s3 sehen, dass die .css-Dateien die Content-Encoding: gzip und die * .js nicht haben. Was geht hier vor sich?

+0

Darf ich fragen, warum Sie 'COMPRESS_STORAGE' zweimal definieren? –

+0

@MarcusLind Ich habe die Frage bearbeitet. danke für den Anruf –

Antwort

4

hatte ich das gleiche Problem und konnte diese text/javascript auf dergleichen so GZIP_CONTENT_TYPES Einstellung, indem beheben:

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

Ich bin nicht sicher, warum, aber der Standardwert von GZIP_CONTENT_TYPES in django-storages==1.1.8 scheint nicht zu enthalten text/javascript, so scheint es django-compressor überspringt GZIP für komprimierte .JS-Dateien mit diesem Inhaltstyp.

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

Verwandte Themen