我是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被视为静态资源,可能不需要。
答案 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
选项,您可以用它来排除您想要的任何内容。