django-compressor 是一个静态资源压缩插件,可以将CSS、JS文件压缩到一个文件中,从而减少网络下载时间。
安装
pip install django_compressor
添加compressor
到settings.py
配置文件 INSTALLED_APPS
中
INSTALLED_APPS = (
# other apps
"compressor",
)
STATICFILES_FINDERS 配置
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
# other finders..
'compressor.finders.CompressorFinder',
)
使用
加载
{% load compress %}
压缩css
{% load compress %}
{% compress css %}
<link rel="stylesheet" href="/static/css/one.css" type="text/css" charset="utf-8">
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/static/css/two.css" type="text/css" charset="utf-8">
{% endcompress %}
输出
<script type="text/javascript" src="/static/CACHE/js/3f33b9146e12.js" charset="utf-8"></script>
压缩js
{% load compress %}
{% compress js%}
<script src="/static/js/one.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">obj.value = "value";</script>
{% endcompress %}
注意事项
如果COMPRESS_ENABLED
设置是False
(默认为与DEBUG相反),则compress模板标签不执行任何操作,只是简单地返回给定的内容。
如果您已配置任何 precompilers 设置COMPRESS_ENABLED,False则不会影响这些文件的处理。只有 CSS和 将被禁用。JavaScript filters
如果DEBUG
和COMPRESS_ENABLED
都设置为 True
,则不可压缩文件(异地或不存在)将引发异常。如果DEBUG
是False
这些文件将被静默剥离。