1

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

4

2 回答 2

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/

于 2012-10-18T17:58:11.480 回答
1

STATIC_ROOT不使用调试模式,但staticfiles_urlpatterns()提供来自所有不同应用程序的静态文件。将您的静态文件放入static/其中一个应用程序的目录中,或在您的设置中定义STATICFILES_DIRS并将站点的静态文件放在那里。

STATIC_ROOTSTATICFILES_DIRS只是从所有应用程序和调用时收集所有静态文件的位置:

python manage.py collectstatic

并且只在生产环境中使用。

于 2012-10-18T18:39:48.883 回答