2010-10-05 7 views
7

Ich habe verschiedene Seiten serviert, im Wesentlichen läuft der gleiche Code. Eine Seite wird korrekt gerendert, während für die andere Seite kein CSS verfügbar ist.IE9 CSS für bestimmte Seiten ignorieren?

Wenn ich die IE9 Entwickler-Konsole für die gebrochene Seite bringen, sehe ich:

SEC7113: CSS was ignored due to mime type mismatch

so dass erklärt, warum die Seiten falsch machen, aber die Frage ist, warum bin ich diesen Fehler zu sehen auf eine Seite, aber nicht die andere?

Fiedler Unter Verwendung der gleichen CSS an beiden Standorten bedient, und beide Seiten haben eine der Metatag:

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

Ich weiß IE9 noch in der Betaphase, aber ich versuche, dies herauszufinden, warum ist ein Problem mit meiner Website.

+0

Ich würde dies als einen Fehler an Microsoft senden. (Welcher Doctype ist der HTML-Code?) –

+1

Im IE9-Standards-Modus werden selbst Stylesheets mit demselben Ursprung ignoriert, es sei denn, sie werden mit einem Text-/CSS-MIME-Typ geliefert. http://blogs.msdn.com/b/ie/archive/2010/10/26/mime-handling-changes-in-internet-explorer.aspx – Amitd

Antwort

12

Das sieht nicht wie eine IE-Emulations-Sache aus - es klingt, als wäre der CONTENT-TYPE in der Antwort nicht "text/css". Es sieht so aus, als ob IE9 erzwingt, dass Dateien, die CSS enthalten sollen, tatsächlich als solche markiert sind.

Nur aus Interesse, sind die CSS-Seiten in irgendeiner Weise verarbeitet? Werden sie von einer ASPX-Seite gerendert, damit Sie CSS injizieren können? Wenn das der Fall ist, dann sollten Sie Ihre Seite Erklärung an der Spitze stellen Sie sicher, die Content Erklärung enthält, zum Beispiel:

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

Ja, die CSS-Dateien werden als binäre Blobs gespeichert und dann gestreamt bis zum Kunden. Diese Dateien hatten nicht die richtigen Header. Sobald wir die Header gesetzt haben, hat alles funktioniert. – Alan

5

Es stellt sich heraus, wird IE9 die fehlenden Content-Typen für alle Websites ignorieren, die in Ihrem " Vertrauenszone. "

Bei Sites außerhalb der vertrauenswürdigen Zone wird die CSS-Datei nicht gerendert, wenn ein Content-Type-Header fehlt.

+5

IE9 benötigt einen Text-/CSS-MIME-Typ für ein beliebiges Stylesheet, das von einer Standardmodus-Seite verwendet wird. IE9 erfordert einen Text-/CSS-MIME-Typ für ein beliebiges Stylesheet, das von einer beliebigen Modusseite verwendet wird, wenn die Antwort einen X-Content-Type-Options: nosniff-Header aufweist. IE9 benötigt einen Text-/CSS-MIME-Typ für alle Stylesheets, die domänenübergreifend sind, es sei denn, die Ursprungsseite befindet sich in der Sicheren Zone. – EricLaw

+0

Enthält das 'text/css; charset = utf-8'? Ich habe einen Kunden, der IE9 verwendet, der Probleme mit einer Typekit-CSS-Datei hat, die mit diesem 'Content-Type' geliefert wird. –