如何在Django应用程序中使用bower包管理器?

2024-05-13 05:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Django framework的新手,我读到css和js等“静态”文件必须在“静态”目录中,但我的问题是:

假设bower包管理器将其依赖项安装到当前目录中名为bower_components的新目录上,那么必须在“static”django目录上创建bower.json?如果是真的,那么不是用collectstatic命令导出bower.json吗?(可能不需要的东西)

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

更新:

谢谢你的回答,你的回答能给我更多的视角。我想使用bower来管理前端依赖项,比如jQuery、bootstrap等等,如您所见,by logic必须在de static/django目录中,但是这样做,可能会导致bower.json被视为一个静态资源,有些东西可能不需要。


Tags: 文件django目录json管理器js静态components
3条回答

我跟随this博客文章来建立我的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"
}

我使用了像这样的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}),)

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

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

不需要像django bower这样的应用程序,也不需要占用服务器资源、缓慢构建时间和极大限制bower有用性的其他专用工具。尤其是,当你有嵌套的django应用程序与他们自己的bower依赖。

您可以查看我关于如何无缝集成Django+Bower+Herokuhere的教程。尽管本教程针对Heroku,但该方法适用于任何部署场景。

相关问题 更多 >