使用Python的Django框架中的压缩组件Django Compressor
为了加快网站的加载速度,我们通常要多js和css进行压缩处理。这些js和css的压缩工作如果都手动处理,费时费力。
DjangoCompressor可以实现js/css的自动压缩。DjangoCompressor在易用性方面做的非常好,按照文档做简单的设置后就可以正常工作。强烈建议大家去将文档完整的看一遍(文档很短)。
使用的时候,只需要将css/js放到compress标签中DjangoCompressor即可自动进行处理。在debug模式时,DjangoCompressor不会对做任何处理。在非debug模式时,DjangoCompressor会自动对js/css进行压缩,并将压缩后的问题输出到django的STATIC_ROOT目录。所以请务必保证STATIC_ROOT目录进行了正确的设置。
{%loadcompress%} {%compress<js/css>[<file/inline>[block_name]]%} <htmlofinlineorlinkedJS/CSS> {%endcompress%} {%compresscss%} <linkrel="stylesheet"href="/static/css/one.css"type="text/css"charset="utf-8"> {%endcompress%}
coffeescript、less支持
在开发阶段coffeescript和less可以直接使用js来处理,在正式发布时处于加载速度的考虑需要预先编译成js和css。DjangoCompressor提供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}'), )