我的浏览器(firefox)控制台确认收到状态为200 的文件但是 firefox给了我这个:
The stylesheet http://localhost:8000/css/full-width-pics.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8000
The stylesheet http://localhost:8000/css/mainstyle.css was not loaded because its MIME type, "text/html", is not "text/css". localhost:8000
正如Django 提供服务文件但只是错误的mimetype一样:所有文件都给出了状态代码200:
[05/Jul/2015 08:52:33]"GET / HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /css/full-width-pics.css HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /js/bootstrap.min.js HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /css/mainstyle.css HTTP/1.1" 200 6263
[05/Jul/2015 08:52:33]"GET /js/jquery.js HTTP/1.1" 200 6263
这是我到目前为止所发现的。
Django使用python来猜测mime类型。 Python使用它运行的系统来猜测mime类型。在注册表中某处的窗口中。我在Ubuntu上,所以对我来说是/etc/mime.types。
我在/etc/mime.types中找到了这一行:
text/css css
这意味着问题不在于我的系统。那是python的问题吗?不。运行以下内容:
import mimetypes
mimetypes.guess_type("test.css")
给我以下内容:
('test/css', none)
我已经尝试了一些黑客攻击'来自其他stackoverflow答案。一个黑客是将mimetypes.add_type("text/css", ".css", True)
添加到settings.py。它没有用。
另一个是将url(r'.*\.css$', views.css),
添加到urls.py并将其添加到views.py:
def css(request):
filename = request.path.strip("/")
data = open(filename, "rb").read()
return HttpResponse(data, mimetype="text/css")
也没有用。我删除了他们两个。现在我只想知道为什么会这样,以及我如何正确地解决它。我确定问题出在Django上,但我不知道在哪里。
一条更重要的信息。这只是在我开始使用模板继承之后才开始发生的。在<link href="css/full-width-pics.css" rel="stylesheet" type="text/css" />
直接在index.html之前,它运行正常。现在它在base.html和index.html&#39; extends&#39; base.html文件。我正在学习Django所以我刚开始使用模板继承。
谢谢,如果你甚至读过这一切。