header(“Content-type: text/css”);在Firefox和Chrome中工作,但在Internet Explorer 9中它显示为“text/html”

header("Content-type: text/css");适用于Firefox,Chrome和其他,但不适用于Internet Explorer 9。我不知道发生了什么。

在Chrome和Firework中,如果我在自己的选项卡中打开它并将其应用于页面,它会显示样式表。

在 Chrome 中,在开发者工具的“网络”下,它说类型是 200,状态是 200。text/css

在 Internet Explorer 9 中,如果我在自己的选项卡中打开样式表,并且它没有应用于页面,则它想要下载样式表。

在 F12 开发人员工具中,可以单击“网络”,开始捕获并刷新页面。它显示了 .类型为,结果为 406。Style.css.phptext/html

这是在头脑中:

<link rel="stylesheet" type="text/css" href="/assets/css/style.css.php" media="screen" />

请求标头:

Key Value
Request GET /assets/css/main.css HTTP/1.1
Accept  text/css
Referer http://10.0.1.5/
Accept-Language en-US
User-Agent  Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding gzip, deflate
Host    10.0.1.5
Connection  Keep-Alive
Cookie  PHPSESSID=*Hidden*

响应标头:

Key Value
Response    HTTP/1.1 406 Not Acceptable
Date    Fri, 01 Apr 2011 10:12:42 GMT
Server  Apache/2.2.14 (Ubuntu)
Alternates  {"main.css.php" 1 {type application/x-httpd-php}}
Vary    negotiate
TCN list
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    text/html; charset=iso-8859-1

答案 1

IE有“不,我不是在开玩笑的内容类型”开关:

X-Content-Type-Options: nosniff

顺便说一句:请确保您也在PHP中发送和禁用,否则浏览器将不断重新加载CSS文件,这将对性能产生负面影响。Last-Modifiedsession.cache_limiter


答案 2

Internet Explorer 具有信任文件扩展名而不是浏览器报告的 MIME 类型的历史记录。如果有可用的mod_rewrite,请让 HTML 查找.css文件,然后创建一个mod_rewrite规则,将该 URL 通过管道传输到脚本。


推荐