Django无法加载静态文件
我有一个用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
任何帮助都非常感谢。
3 个回答
-2
我发现这个问题出现了很多次,每次都是通过把网址添加到 STATIC_URL 里来解决的,也就是这样做:
STATIC_URL = 'http://localhost:8000/static/'
1
你需要把静态文件放到你项目的应用文件夹里。
---> 如果你的项目名字是 myblog
,你会在 myblog
文件夹里找到另一个同名的 myblog
文件夹,你需要把你的 static
文件夹放在这里。
---> 在 settings.py
文件里,你需要添加:
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'myblog/static'), )
在生产模式下,如果你收集静态文件,这些静态文件会被复制到根目录的静态文件夹里。
3
你做得很好,但这里的问题只是一个简单的拼写错误。
你的静态文件放在 bootstrap 文件夹里。
但是在你的 HTML 代码中,你写成了: {% static "boostrap/css/bootstrap.css" %}
这里少了一个T。
下面的代码就能正常工作:
{% load staticfiles %}
<link href="{% static "bootstrap/css/bootstrap.css" %}" rel="stylesheet" media="screen">