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

Rob*_*lar 17 python django bower

我是Django框架的新手,我已经读过像css和js这样的'静态'文件必须在'static'目录中,但我的问题是:

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

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

更新:

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

Kar*_*kis 7

我按照这篇博文来设置我的django凉亭项目:

项目结构:

|-root
  |-app
     |-assets
     |-static
     |-templates
     |settings.py
     |urls.py
     |views.py
     |wsgi.py
  |manage.py
  |bower.json
  |.bowerrc
Run Code Online (Sandbox Code Playgroud)

我的.bowerrc:

{
    "directory": "app/static/bower_components"
}
Run Code Online (Sandbox Code Playgroud)

我用这样的bower组件:

<script src="{{ STATIC_URL }}bower_components/angular/angular.js"></script>
Run Code Online (Sandbox Code Playgroud)

我的settings.py:

STATIC_URL = '/static/'
STATIC_ROOT = join(BASE_DIR, 'assets')
STATICFILES_DIRS = [join(BASE_DIR, 'static')]
Run Code Online (Sandbox Code Playgroud)

另外urls.py:

urlpatterns += patterns('',
                        (r'^static/(?P<path>.*)$', 'django.views.static.serve',
                         {'document_root': settings.STATIC_ROOT}),)
Run Code Online (Sandbox Code Playgroud)

  • @arctelix:这个答案不会使用django-bower. (2认同)

Yuj*_*ita 2

没有推荐的方法 - 这取决于您的项目。如果您将 Bower、Node 用于 django 项目之外的其他项目,则将其放置在项目根目录(django 之上)中可能是有意义的,以便可以在其他地方重用。

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