Django 静态资源压缩插件django-compressor


django-compressor 是一个静态资源压缩插件,可以将CSS、JS文件压缩到一个文件中,从而减少网络下载时间。

安装

pip install django_compressor

添加compressorsettings.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

如果DEBUGCOMPRESS_ENABLED都设置为 True,则不可压缩文件(异地或不存在)将引发异常。如果DEBUGFalse这些文件将被静默剥离。

GitHub

django-compressor