加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-16 21:47:06 所属栏目:Python 来源:网络整理
导读:我正在尝试从amazon s3提供gzip文件. 这是我的settings.py: AWS_IS_GZIPPED = TrueAWS_PRELOAD_METADATA = True DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'AWS_STOR

我正在尝试从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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读