Сжатие js/css файлов и шаблоны с jinja2

На продакшене предпочитаю сжимать файлы с стилями и javascript'ом. Экономия места примерно от 20% и больше. Я везде использую jinja2 в качестве шаблонизатора для django, а для сжатия jccompressor - это моя форкнутая версия оригинала. Из изменений - добавил отдельные настройки для хранения путей к файлам с js/css.

JC_JS_DIR = 'j'
JC_CSS_DIR = 's'

По-умолчанию js-файлы хранятся в директории js, а css-стили в - css, мне больше нравиться j - для скриптов и s для стилей. Если не указывать JC_JS_DIR и JC_CSS_DIR в settings.py то все файлы с js/css будут искаться как и задумано автором jccompressor - в js и css, соответственно.

Пример использования в шаблоне с jinja2

{% set css = ['reset', 'base',] %}
{{ css|compress_css }}

В данном варианте два файла с стилями reset.css и base.css объединяются и сжимаются в один, на выходе получиться что-то вроде built.v1.20c295d.css.

По-умолчанию jccompressor использует для сжатия js - Google compiler, а для css - YUI compressor. Оба компрессора написаны на Java.

Под CentOS последнюю версию Java SDK можно установить следующим образом. Заходим на Java SE Downloads, выбираем Java Platform (JDK) и нужную платформу, я выбрал Linux x86 - Self Extracting Installer.

Установим в /opt/java/

mkdir -p /opt/java/
cd /opt/java/
wget http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u26-download-400750.html -O jdk.bin
chmod +x jdk.bin
./jdk.bin
rm -f jdk.bin
ln -s /opt/java/jdk1.6.0_23/bin/java /usr/bin/

Проверим работу компрессора для css-стилей

java -jar /path/to/yuicompressor.jar -o test.css --type css /path/to/style.css

blog comments powered by Disqus