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

36

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

这是在 Google Chrome Inspector 中显示的错误。

该文件是: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文件有关吗?

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

感谢任何帮助。

2个回答

40

我只在使用Chrome浏览器查看特定资源时遇到错误,同时尝试打开JavaScript文件(.js)时也会发生此错误。

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

以JavaScript文件为例。如果在Chrome中输入该文件,它应该被解释为文档(在屏幕上显示输出),而不是Chrome执行脚本(这就是其原生MIME类型的作用)。

这个信息只出现在Google Chrome浏览器中,而且它只在打开组件文件时才会出现,因此可以忽略不计。


0

我遇到了同样的错误,我认为我知道原因了。 如果你查看你的请求头,你会发现它们包括:

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,根据那个生成它们发送的标头。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接