2010-10-05 104 views
7

我有不同的網站正在服務,基本上運行相同的代碼。一個頁面呈現正確,而另一個似乎沒有可用的CSS。IE9忽略某些頁面的CSS?

當我打開IE9的開發者控制檯損毀頁,我看到:

SEC7113: CSS was ignored due to mime type mismatch

所以這解釋了爲什麼網頁渲染不當,但問題是,爲何會出現該錯誤一頁,但不是另一頁?

使用招,相同的CSS投放到這兩個網站,這兩個網站有一個元標記:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"/>

我知道IE9仍處於測試階段,但我試圖找出爲什麼這個是我的網站有問題。

+0

我想提交這個作爲微軟的錯誤。 (什麼doctype是html?) – 2010-10-06 09:56:55

+1

在IE9標準模式下,除非使用text/css MIME類型交付,否則即使是相同來源的樣式表也會被忽略。 http://blogs.msdn.com/b/ie/archive/2010/10/26/mime-handling-changes-in-internet-explorer.aspx – Amitd 2012-11-26 10:06:55

回答

12

這看起來不像IE仿真的東西 - 聽起來像響應中的CONTENT-TYPE不是「text/css」。它看起來像IE9強制實際上標記爲包含CSS的文件。

出於興趣,是否以任何方式處理CSS頁面?即它們是由一個ASPX頁面渲染,以允許您注入CSS?如果是這樣的話,那麼你可能希望確保在頂部的頁面聲明中包含contentType中聲明,如:

<%@ Page Language="C#" ContentType="text/css" %> 
+0

是的,css文件存儲爲二進制blob,然後流式傳輸下到客戶端。這些文件沒有設置正確的標題。一旦我們設置了標題,一切都奏效了。 – Alan 2010-10-12 16:52:19

5

事實證明,IE9將忽略遺漏的內容類型的所有網站,在你的「信任區「。

如果缺少內容類型標題,則受信任區域外部的站點將不會呈現css。

+5

對於標準模式頁面使用的任何樣式表,IE9需要文本/ CSS MIME類型。 如果響應具有X-Content-Type-Options:nosniff標頭,則IE9需要任何模式頁面使用的任何樣式表的文本/ CSS MIME類型。 對於任何跨域的樣式表,IE9都需要文本/ CSS MIME類型,除非原始頁面位於受信任區域中。 – EricLaw 2011-04-01 21:14:26

+0

是否包含'text/css; charset = utf-8'?我有一位使用IE9的客戶,他在使用該「Content-Type」提供的typekit CSS文件時遇到問題。 – 2013-11-07 14:45:01