如何指向django中的静态文件夹

时间:2012-10-18 17:11:26

标签: python django static

我正在学习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)

2 个答案:

答案 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

它仅用于生产环境。