Подтвердить что ты не робот

Менеджеры активов для Django - выберите какой?

Я хотел бы объединить файлы css и javascript. Я также хочу отправить заголовки с даром будущего для клиентов, поэтому мне нужно управлять версиями файлов.

Быстрый поиск через Интернет показал, что для Django разработано несколько менеджеров активов. Вот список тех, которые я мог бы достичь:

Они, похоже, выполняют более или менее одну и ту же работу. django-compress, django-compressor и django-site-assets, кажется, особенно перспективны с первого взгляда. Я буду признателен, если кто-то предоставит обратную связь по любому из них, который поможет мне выбрать между ними.

4b9b3361

Ответ 1

Среди соперников я выбрал django-compressor, потому что он невероятно прост в использовании. Просто поместите в шаблон один или два тега (типичный сценарий: один для css и другой для js), и в большинстве случаев вы делаете это без изменения; вам даже не нужно объявлять или изменять настройки, его настройки по умолчанию хороши.

Ответ 2

Как вы уже заметили, все они делают одно и то же (более или менее). Я решил продолжить django_compressor.

Кроме того, я предпочитаю устанавливать заголовки истечения или применять на сжатие на уровне веб-сервера. IMHO эти операции не должны выполняться самим приложением, потому что иногда это может привести к некоторым проблемам, например, установить Cache-Control или заголовки истечения на страницах ошибок и т.д. Модуль mod_expires очень легко настраивается в соответствии с вашими потребностями. Для сжатия "на лету" с использованием выходного фильтра DEFLATE я использовал эту конфигурацию mod_deflate, как есть.

Ответ 3

Новые проекты были созданы с тех пор, как был задан этот вопрос.

Вы можете взглянуть на django-pipeline, это довольно изящно.

Ответ 4

Я использую django-compress, и я доволен этим, особенно потому, что я могу указать внутренний компрессор (например, YUI работает лучше с моим JS).

Вероятно, я подумаю о переключении на django_compressor в будущем, но это слишком низкий приоритет atm.

Я бы также отметил, что у django-media-bundler есть одна особенность, другие не... автоматическое построение спрайтов изображений. Я не использовал его вживую, поэтому я не уверен, насколько хорошо он реализован, но это довольно аккуратно. Вы можете использовать его только для спрайтов и оставить css/js для одного из других компрессоров.

Ответ 5

FWIW, поскольку djangopluggables.com больше не существует, и никто еще не упомянул его здесь: Самое последнее сравнение на djangopackages.com, где django_compressor является наиболее используемым одним банкоматом. Не пробовал это с 1.4, хотя, как предупреждал Джей Тейлор в comment.