Django dev服务器提供错误的mimetype的css文件

时间:2015-07-05 09:11:12

标签: django server mime-types django-dev-server

我的浏览器(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所以我刚开始使用模板继承。

谢谢,如果你甚至读过这一切。

0 个答案:

没有答案