Как использовать менеджер пакетов bower в приложении Django?
Я новичок в структуре Django, и я прочитал, что "статические" файлы, такие как css и js, должны находиться внутри "статического" каталога, но мой вопрос:
Учитывая, что менеджер пакетов bower устанавливает свои зависимости в новый каталог с именем bower_components в текущем каталоге, bower.json должен быть создан в "статическом" каталоге django? и если это правда, не bower.json экспортируется с помощью команды collectstatic? (что-то может не понадобиться)
Каков рекомендуемый способ работы с базой данных и Django?
Update:
Спасибо Yuji 'Tomita' Tomita, ваш ответ может дать больше перспективы. Я хочу использовать беседу для управления внешними зависимостями, такими как jQuery, bootstrap и т.д., Как вы видите, логикой должно быть внутри каталога static/django, но сделать это таким образом, может привести к тому, что bower.json будет рассматриваться как статический ресурс, что-то может не понадобиться.
Ответы
Ответ 1
Я выполнил это сообщение в блоге, чтобы настроить проект django bower:
Структура проекта:
|-root
|-app
|-assets
|-static
|-templates
|settings.py
|urls.py
|views.py
|wsgi.py
|manage.py
|bower.json
|.bowerrc
Мой .bowerrc
:
{
"directory": "app/static/bower_components"
}
И мои пользовательские компоненты, такие как:
<script src="{{ STATIC_URL }}bower_components/angular/angular.js"></script>
Мой settings.py
:
STATIC_URL = '/static/'
STATIC_ROOT = join(BASE_DIR, 'assets')
STATICFILES_DIRS = [join(BASE_DIR, 'static')]
Также urls.py
:
urlpatterns += patterns('',
(r'^static/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}),)
Ответ 2
Нет рекомендуемого способа - это зависит от вашего проекта. Если вы используете bower, node для большего, чем проект django, имеет смысл разместить его в корне вашего проекта (выше django), чтобы его можно было повторно использовать в другом месте.
Если это чисто для статических файлов django, тогда имеет смысл разместить его в src/
вне системы staticfiles
, которая строит в статическом каталоге, который экспортируется через collectstatic.
Ответ 3
Вы должны указать установленные пакеты bower в settings.py, используя ключ BOWER_INSTALLED_APPS.
Теперь на вашем сервере разработки, используя {% static%} templatetag, находит их из своего установленного каталога. На рабочем сервере сборщик будет собирать правильные статические файлы из установленного каталога (bower_components).
Подробнее: http://django-bower.readthedocs.org/en/latest/usage.html
Ответ 4
Если вы боитесь включения bower.json, команда collectstatic
имеет параметр --ignore
, который вы можете использовать, чтобы исключить все, что хотите.
Ответ 5
Нет необходимости в таких приложениях, как django-bower или других специализированных инструментах, которые занимают ресурсы сервера, замедляют время сборки и значительно ограничивают полезность беседки. Особенно, когда у вас есть вложенные приложения django со своими зависимостями в беседке.
Вы можете проверить мой учебник о том, как легко интегрировать Django + Bower + Heroku здесь. Учебник нацелен на геройку, эта методология применима к любому сценарию развертывания.