Многим уже надоело лазить по куче сайтов и скачивать js библиотеки и плагины. Да и таскать когда-то скачанные, но уже давно протухшие версии не очень круто. Эти проблемы решает bower.
Но с ним тоже многое нужно делать вручную: следить за components
каждого проекта, руками дёргать bower install
. После pip
с requirements.txt
это делать даже как-то лень.
Поэтому представляю вам django-bower, который берёт на себя установку и обновление bower пакетов по списку из settings
и прозрачную работу с staticfiles
.
Установка
Для начала у вас должен быть установлен bower, инструкция есть на официальном сайте.
Вам нужно поставить пакет django-bower
из pypi:
pip install django-bower
Добавить приложение в INSTALLED_APPS
в settings
:
'djangobower',
Подключить его в STATICFILES_FINDERS
:
'djangobower.finders.BowerFinder',
И прописать путь до components
— место, где хранятся установленные пакеты. Путь должен быть абсолютным и существовать:
BOWER_COMPONENTS_ROOT = '/PROJECT_ROOT/components/'
Вы можете посмотреть пример настроек в demo проекте.
Использование
Для использования пакетов пропишите их в BOWER_INSTALLED_APPS
в settings
, например:
BOWER_INSTALLED_APPS = (
'jquery#2',
'underscore',
)
И установите их с менедж командой bower_install
, впоследствии можно использовать её для обновления пакетов:
./manage.py bower_install
Теперь можно подключить скрипт в шаблоне:
{% load static %}
<script type="text/javascript" src='{% static 'jquery/jquery.js' %}'></script>
В продакшене bower_install
нужно делать перед collectstatic
:
./manage.py bower_install
./manage.py collectstatic
Автор: nvbn