Django开发服务器。 CSS文件作为' text / html'

时间:2015-07-04 12:36:59

标签: python html css django django-dev-server

我正在使用Django 1.8。我的两个css文件的状态都是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

无论出于何种原因,文件都以text / html而不是text / css的形式提供。这是我的HTML。

  <link href="css/full-width-pics.css" rel="stylesheet" type="text/css" />
    <link href="css/mainstyle.css" rel="stylesheet" type="text/css" />

这是在base.html文件中。我在我的index.html文件中扩展了base.html。在我开始使用模板继承并在index.html中使用了所有内容之前,它运行良好。

我在Ubuntu上。我检查了/etc/mime.types。 css以text / css列出。

这让我很困惑

1 个答案:

答案 0 :(得分:0)

2020年答案:

如果您希望任何mime内容类型被浏览器自动检测,这就是解决方案。

多次痛苦的静态失败尝试之后,这是动态解决方案。

def fetch(request):
    import mimetypes
    clientRequestUrl=os.getcwd()+'/servlet'+request.path
    try: return HttpResponse(fread(clientRequestUrl), content_type=mimetypes.guess_type(request.path)[0])
    except Exception as e: return HttpResponse(str(e)+'===> Error Thrown <br>')
  • 此处fread()直接尝试读取文件,只是阻止其只是一个I / O包装器
  • 在try块中-> content_type = mimetypes.guess_type(request.path)[0]执行 MIME 检测魔术[0],即需要第一个元素,因为它首先返回一个元组,即MIME类型,第二个是编码。
  • request.path在上一行传递,因为它会根据文件路径猜测 MIME 。例如,如果客户端(浏览器)请求,名为stylsheet.css的文件的文本/ css。
  • clientRequestUrl =客户端尝试向服务器请求的确切网址。