python – Django压缩器使用gzip来提供javascript

前端之家收集整理的这篇文章主要介绍了python – Django压缩器使用gzip来提供javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试从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没有.这里发生了什么?

最佳答案
我遇到了同样的问题,并且可以通过将文本/ javascript添加到GZIP_CONTENT_TYPES设置来解决此问题,如下所示:

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

我不知道为什么,但是django-storages == 1.1.8中GZIP_CONTENT_TYPES的默认值似乎不包含text / javascript所以似乎django-compress跳过GZIP用于具有此内容类型的压缩.JS文件.

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

猜你在找的Python相关文章