我正在学习django而且我已经有一点有点无聊的问题了。我无法指向我的静态文件夹,我尝试了所有的组合,看着人们在youtube教程等中做到这一点。
我的settings.py看起来像这样:
STATIC_ROOT = '/home/peter/brewery/static/'
TEMPLATE_DIRS = '/home/peter/brewery/mysite/templates/'
其中brewery /是包含mysite /和static /的文件夹,mysite /是由
创建的文件夹 django-admin.py startproject
其中settings.py也存在......
似乎模板文件夹已正确映射,因为页面呈现的是适当的模板,它无法访问/ static / css /文件夹中的css。我在我的css模板中显示了这样的路径
<link ... href='/static/css/brewery.css' />
我还试图在我的电脑上制作href绝对路径,但它不起作用。
我正在使用django 1.3并运行django提供的服务器(python manage.py runserver)
答案 0 :(得分:4)
1 - 在您的设置文件中,定义一个静态URL和静态根,如下所示:
STATIC_URL = '/static/'
2 - 设置DEBUG = True
3 - 确保您的TEMPLATE_CONTEXT_PROCESSORS
变量包含django.core.context_processors.static
。
4 - 在模板中引用它,如...
<link ... href='{{ STATIC_URL }}css/brewery.css' />
来源:https://docs.djangoproject.com/en/dev/howto/static-files/
答案 1 :(得分:1)
在调试模式下,STATIC_ROOT
未使用,但staticfiles_urlpatterns()
提供来自所有不同应用的静态文件。将您的静态文件放入其中一个应用程序的static/
目录中,或在您的设置中定义STATICFILES_DIRS,并为该站点放置静态文件。
STATIC_ROOT
只是从所有应用收集所有静态文件的位置,并且在您致电时STATICFILES_DIRS
:
python manage.py collectstatic
它仅用于生产环境。