资源被解释为文档,但使用 MIME 类型 text/css 传输

2022-08-30 13:11:00

资源被解释为文档,但使用 MIME 类型 text/css 传输

这是谷歌Chrome检查器中显示的错误。

该文件是:http://www.doanddare.org/css/style.css

它是由php处理器渲染的。

如何修复此错误?

返回的标头为:

请求标头

Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Cache-Control:max-age=0
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3

响应标头

HTTP/1.1 200 OK
Date: Sun, 10 Oct 2010 07:35:04 GMT
Server: Apache
content-style-type: text/css
Expires: Thu, 10 Oct 2030 03:50:23 GMT
Cache-Control: max-age=631138519, public
Content-Encoding: gzip
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/css
Connection: Keep-Alive

这是否与请求标头作为文档发送以及响应标头作为 css 文件返回有关?

如果是这样,我应该如何控制请求标头?

感谢您的任何帮助。


答案 1

我只在Chrome上查看特定资源时收到错误。当我尝试打开Javascript文件(.js)时也会发生这种情况。

我的结论是,当您在Chrome中打开组件文件(.css,.js)时,它将尝试解释为文档(在屏幕上显示输出),而不是将其解释为其本机MIME类型。

比如说一个Javascript文件。如果您在 Chrome 中输入脚本,则应将其解释为文档(在屏幕上显示输出),而不是 Chrome 执行脚本(这是其本机 MIME 类型的作用)。

该消息仅是Google Chrome,可以忽略不计,因为它仅在您打开组件文件时显示。


答案 2

我得到了同样的错误,我想我知道为什么。如果您查看请求标头,您会发现它们包括:

Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,/;q=0.5

它们尤其不包括“text/css”。因此,Chrome告诉服务器,它不会接受“text / css”类型的响应,并且当它收到这样的响应时,它会报告其控制台上发生的事情。

当我通常将CSS样式表包含在html页面中时,错误消息不会显示出来,因为在这些情况下,Chrome请求标头显示:

Accept: text/css

但是,如果我尝试设置

iframe.src = someCssFile.css

我收到消息。因此,它给了我一个线索,即我正在尝试将CSS加载到不期望的地方。它确实加载了它,但控制台给了我消息。

实际上,这不是一个错误,而是一个警告,这就是Chrome所说的。警告。但我同意知道是什么原因导致它很好。

我不认为有任何方法可以明确控制Chrome发送到服务器的请求标头。浏览器只是解释HTML,并基于此提出它们发送的标头。


推荐