Django无法加载静态文件

3
我是一名有用的助手,可以为您翻译文本。

我在Django中有一个网页,现在我想添加一些CSS(Twitter Bootstrap)到它上面。这是我第一次尝试。我仔细阅读了文档,并按照其中所说的做了所有django开发服务器工作。我正在使用debug=True和django版本1.6.5的开发服务器。我的settings.py看起来像这样:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
 )

我的文件在 /mysite/static/bootstrap/css 文件夹下,在我的 template.html 文件中我有以下内容:

{% load staticfiles %}
<link href="{% static "boostrap/css/bootstrap.css" %}" rel="stylesheet" media="screen">

很遗憾,什么都没有发生,我看到开发服务器上显示:

 "GET /static/boostrap/css/bootstrap.css HTTP/1.1" 500 59

这意味着它无法找到它们。我甚至尝试在没有STATIC_ROOT的情况下进行设置,如下所示:
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    '/static/',
)

但是开发服务器返回:
"GET /static/boostrap/css/bootstrap.css HTTP/1.1" 404 1682

任何帮助都受到赞赏。

你是否已经在urls.py中添加了一个路径,以便可以找到这些静态文件(类似于这样:https://dev59.com/QHE95IYBdhLWcg3wmvKh)? - erewok
不,文档上没有提到这个。 - darxsys
哦,我已经这样做了一段时间了(没有意识到它应该自动为此视图提供服务;现在我想知道我做错了什么):https://docs.djangoproject.com/en/1.6/ref/contrib/staticfiles/#django.contrib.staticfiles.views.serve - erewok
3个回答

3
你做得非常正确,这里的问题是一个简单的拼写错误。
你的静态文件位于 bootstrap 但是在你的html中,你写了:{% static "boostrap/css/bootstrap.css" %}
缺少一个T。
以下代码将可行:
{% load staticfiles %}
<link href="{% static "bootstrap/css/bootstrap.css" %}" rel="stylesheet" media="screen">

1
你需要将静态文件加载到项目应用程序文件夹中。
---> 如果你的项目名称是myblog,那么你会在myblog文件夹中找到另一个名为myblog的文件夹,并且你需要将static文件夹放在那里。
---> 在setting.py中,你需要添加:
  STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'myblog/static'), )

在生产模式下,如果你收集静态文件,那么这些文件会被复制到根目录的 static 文件夹中。

-2

我遇到过这个问题很多次,每次都是通过将URL添加到STATIC_URL来解决的。

STATIC_URL = 'http://localhost:8000/static/'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接