如何在Django App中使用bower包管理器?

时间:2014-06-03 19:12:49

标签: python django bower

我是Django框架的新手,我读过“静态'像css和js这样的文件必须位于'静态'目录,但我的问题是:

鉴于bower包管理器将其依赖关系安装在当前目录中名为bower_components的新目录中,必须在' static'上创建bower.json。 django目录?如果是真的,是不是使用collectstatic命令导出bower.json? (可能不想要的东西)

使用bower和Django框架的推荐方法是什么?

更新

感谢Yuji' Tomita'富田,你的答案可以提供更多的视角。我想使用bower来管理前端依赖,如jQuery,bootstrap等,如你所见,逻辑必须在de static / django目录中,但这样做,可以导致bower.json被视为静态资源,可能不需要。

5 个答案:

答案 0 :(得分:7)

我按照this博客文章设置了我的django凉亭项目:

项目结构:

|-root
  |-app
     |-assets
     |-static
     |-templates
     |settings.py
     |urls.py
     |views.py
     |wsgi.py
  |manage.py
  |bower.json
  |.bowerrc

我的.bowerrc

{
    "directory": "app/static/bower_components"
}

我使用这样的bower组件:

<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}),)

答案 1 :(得分:3)

不需要像django-bower这样的应用程序或其他专用工具占用服务器资源,缩短构建时间,并极大地限制了凉亭的实用性。特别是,当您使用自己的bower依赖项嵌套django应用程序时。

您可以查看我的教程,了解如何无缝集成Django + Bower + Heroku here虽然本教程的目标是heroku,但该方法适用于任何部署方案。

答案 2 :(得分:2)

没有推荐的方法 - 这取决于您的项目。如果你使用的是bower,节点而不是django项目,那么将它放在你的项目根目录(django上面)可能是有意义的,这样它就可以在其他地方重复使用。

如果它纯粹是为了django的静态文件,那么将它放在构建到静态目录的src/系统之外的staticfiles中可能是有意义的。通过collectstatic出口。

答案 3 :(得分:2)

您应该使用键BOWER_INSTALLED_APPS在settings.py中列出已安装的凉亭包。

现在,在您的开发服务器中,使用{%static%} templatetag从其安装目录中找到它们。在生产服务器中,collectstatic将从已安装的目录(bower_components)中收集正确的静态文件。

查看更多:http://django-bower.readthedocs.org/en/latest/usage.html

答案 4 :(得分:2)

如果您害怕包含bower.json,collectstatic命令会有一个--ignore选项,您可以用它来排除您想要的任何内容。