1

我正在使用 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 一起列出。

这让我很困惑

4

1 回答 1

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() 直接在 try 中读取文件,除了阻止它只是一个 I/O 包装器
  • 在 try 块 --> content_type=mimetypes.guess_type(request.path)[0] 执行MIME检测魔术 [0] 即第一个元素是必需的,因为它返回一个元组,首先是 mime 类型,其次是编码。
  • request.path 在上面的行中传递,因为它根据文件路径猜测MIME 。例如,如果客户端(浏览器)请求,则为名为 stylsheet.css 的文件的 text/css。
  • clientRequestUrl = 客户端尝试向服务器请求的确切 url。
于 2020-10-18T04:59:25.020 回答