В прошлом посте я писал о django compressor. Не ясно было почему компрессор ничего не делает (по умолчанию) с CSS-файлами (кроме очевидного – сборки в один файл и кеширования).
Присмотревшись внимательней компрессору, удалось выяснить, что есть в нем возможность использования csstidy, jsmin, yuicompressor и google closure для сжатия css и js файлов. Однако, процесс установки и настройки этих инструментов, не так уж и прост (по крайней мере yuicompressor и google closure).
jsmin ставить отдельно не нужно. Он входит в “стандартный набор” и даже включен по умолчанию в настройках django compressor опцией
COMPRESS_JS_FILTERS = ['compressor.filters.jsmin.JSMinFilter']
С csstidy у меня ничего не вышло. После установки csstidy на наш с Дениской debian и подключения фильтра:
COMPRESS_CSS_FILTERS = ['compressor.filters.csstidy.CSSTidyFilter']
словил 500 ошибку - фильтр не знал глобальную переменную css.
# django_compressor/compressor/filters/csstidy.py
...
17. tmp_file.write(css)
...
YUI Compressor.
Сходил и забрал по ссылке http://yuilibrary.com/downloads/#yuicompressor.
Поставил openjdk-6-jre (советуют ставить последний, aptitude search "?provides(java-runtime)").
apt-get install openjdk-6-jre
Положил файл yuicompressor'а в /var/www/. Не спрашивайте зачем и почему – так в голову взбрело.
Добавил в settings.py моего django-проекта:
COMPRESS_JS_FILTERS = ['compressor.filters.yui.YUIJSFilter',]
COMPRESS_CSS_FILTERS = ['compressor.filters.yui.YUICSSFilter',]
COMPRESS_YUI_BINARY = 'java -jar /var/www/yuicompressor-2.4.2.jar'
Google closure пока не осилил. При, казалось бы правильных настройках:
COMPRESS_JS_FILTERS = ['compressor.filters.closure.ClosureCompilerFilter',]
COMPRESS_CSS_FILTERS = ['compressor.filters.closure.ClosureCompilerFilter',]
COMPRESS_CLOSURE_COMPILER_BINARY = 'java -jar /var/www/compiler.jar'
Попытка сжать css и js отпадает по таймауту. Возможно Вам известна причина? Напишите, я хочу сравнить производительность и результаты работы фильтров.
Возможно, кстати, кому-то удалось заставить работать csstidy?
4 комментария:
Вообще, я разочарован Django compressor'ом. На почте опять 20 писем о том, что он не смог получить нужное кол-во памяти при обработке css/js файлов, притом, файл НЕ МЕНЯЛИСЬ уже 4 дня.
кстати можно было бы и оставить тикет на code.google.com.
denz.kiev.ua
Вы правы, но я не стал.
Спасибо. Я тоже на своих сайтах YUI использую
Отправить комментарий