Django中未加载静态文件

时间:2013-05-05 23:00:40

标签: python django

我正在尝试按照这些instructions在我的Django项目中启用静态文件。 我有

STATIC_URL = '/static/'

在我的settings.py文件中。我已将'django.contrib.staticfiles',添加到INSTALLED_APPS = (...)部分 我创建了一个文件夹mysite/static/mysite并将我的文件放在那里。但在运行服务器后,我无法访问http://127.0.0.1:8000/static/mysite/style.css处的文件。 我做错了什么?

2 个答案:

答案 0 :(得分:1)

settings.py中包括:

import os
settings_dir = os.path.dirname(__file__)
PROJECT_ROOT = os.path.abspath(os.path.dirname(settings_dir))

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static/mysite/'),
)

在你的urls.py最后包含这些内容:

from django.conf.urls.static import static
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()

希望它有所帮助。

答案 1 :(得分:0)

我可以建议一些事情要检查:

  • 至少在我的项目中,静态文件夹位于app目录中,而不是项目目录中。例如,mysite/myapp/static/myapp/img.jpg而不是mysite/static/mysite/img.jpg。您的项目可能找不到合适的位置。

  • 在链接文件之前,请确保{%load staticfiles%}在您的html模板中。

  • 在html模板中链接文件时,而不是像

  • 这样的直接网址

<link rel="stylesheet" href="myapp/css/custom.css">

使用

<link rel="stylesheet" href="{% static 'myapp/css/custom.css' %}">

这足以让静态文件在我的项目中运行,而无需修改urls.py或手动设置PROJECT_ROOT或STATICFILES_DIRS。