5

Amazon s3 から gzip ファイルを提供しようとしています。これは私のsettings.pyです:

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' 

これを行うと、django は圧縮された *.js および *.css ごとに *.gz ファイルを作成しますが、奇妙なことに *.css ファイルのみが gzip として提供されます。aws s3 では、.css ファイルに Content-Encoding: gzip があり、*.js にはないことがわかります。ここで何が起こっているのですか?

4

1 に答える 1

4

私は同じ問題を抱えていましたが、次のようtext/javascriptGZIP_CONTENT_TYPES設定に追加することでこれを解決できました。

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

GZIP_CONTENT_TYPES理由はわかりませんが、 inのデフォルト値にはdjango-storages==1.1.8含まれていないようで、このコンテンツ タイプの圧縮された .JS ファイルの GZIP をスキップしtext/javascriptているようです。django-compressor

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

于 2013-10-01T19:37:35.733 に答える