IE9 忽略某些页面的 CSS?
Posted
技术标签:
【中文标题】IE9 忽略某些页面的 CSS?【英文标题】:IE9 ignoring CSS for certain pages? 【发布时间】:2011-04-21 10:06:00 【问题描述】:我提供了不同的网站,基本上运行相同的代码。一页正确呈现,而另一页似乎没有可用的 CSS。
当我为损坏的页面打开 IE9 开发者控制台时,我看到:
SEC7113: CSS was ignored due to mime type mismatch
这就解释了为什么页面呈现不正确,但问题是,为什么我在一个页面上看到该错误,而在另一个页面上却没有?
使用 fiddler,相同的 CSS 提供给两个站点,并且两个站点都有一个元标记:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>
我知道 IE9 仍处于测试阶段,但我正试图弄清楚为什么这是我的网站的问题。
【问题讨论】:
我会将此作为错误提交给微软。 (html是什么文档类型?) 在 IE9 标准模式下,即使是同源样式表也会被忽略,除非它们以 text/css MIME 类型交付。 blogs.msdn.com/b/ie/archive/2010/10/26/… 【参考方案1】:这看起来不像是 IE 仿真 - 听起来响应中的 CONTENT-TYPE 不是“text/css”。看起来 IE9 强制要求包含 CSS 的文件实际上是这样标记的。
只是出于兴趣,是否以任何方式处理了 CSS 页面?即它们是否由 ASPX 页面呈现以允许您注入 CSS?如果是这种情况,那么您可能需要确保顶部的页面声明包含 ContentType 声明,例如:
<%@ Page Language="C#" ContentType="text/css" %>
【讨论】:
是的,css 文件存储为二进制 blob,然后流式传输到客户端。这些文件没有设置正确的标题。设置标题后,一切正常。【参考方案2】:事实证明,IE9 将忽略您“受信任区域”中所有网站的缺失内容类型。
如果缺少内容类型标头,则受信任区域之外的站点将不会呈现 css。
【讨论】:
IE9 对于标准模式页面使用的任何样式表都需要文本/CSS MIME 类型。如果响应具有 X-Content-Type-Options: nosniff 标头,则 IE9 需要任何模式页面使用的任何样式表的 text/CSS MIME 类型。 IE9 要求任何跨域样式表的文本/CSS MIME 类型,除非源页面在受信任区域中。 是否包括text/css;charset=utf-8
?我有一个使用 IE9 的客户在使用 Content-Type
提供的 typekit CSS 文件时遇到问题。以上是关于IE9 忽略某些页面的 CSS?的主要内容,如果未能解决你的问题,请参考以下文章