欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用Python的Django框架中的压缩组件Django Compressor

程序员文章站 2024-02-29 08:54:46
为了加快网站的加载速度,我们通常要多js和css进行压缩处理。这些js和css的压缩工作如果都手动处理,费时费力。 django compressor 可以实现js/cs...

为了加快网站的加载速度,我们通常要多js和css进行压缩处理。这些js和css的压缩工作如果都手动处理,费时费力。

django compressor 可以实现js/css的自动压缩。django compressor在易用性方面做的非常好,按照 文档 做简单的设置后就可以正常工作。强烈建议大家去将文档完整的看一遍(文档很短)。

使用的时候,只需要将css/js放到 compress 标签中 django compressor 即可自动进行处理。在debug模式时, django compressor 不会对做任何处理。在非debug模式时,django compressor会自动对js/css进行压缩,并将压缩后的问题输出到django的 static_root 目录。所以请务必保证 static_root 目录进行了正确的设置。

{% load compress %}
{% compress <js/css> [<file/inline> [block_name]] %}
<html of inline or linked js/css>
{% endcompress %}

{% compress css %}
<link rel="stylesheet" href="/static/css/one.css" type="text/css" charset="utf-8">
{% endcompress %}
 

coffeescript、less 支持

在开发阶段coffeescript和less可以直接使用js来处理,在正式发布时处于加载速度的考虑需要预先编译成js和css。 django compressor 提供 compress_precompilers 设置,根据type类型进行预处理。

compress_precompilers = (
 ('text/coffeescript', 'coffee --compile --stdio'),
 ('text/less', 'lessc {infile} {outfile}'),
 ('text/x-sass', 'sass {infile} {outfile}'),
 ('text/x-scss', 'sass --scss {infile} {outfile}'),
)