2010-10-05 12 views
7

Tengo sitios diferentes que se sirven, esencialmente ejecutando el mismo código. Una página se representa correctamente, mientras que la otra parece no tener CSS disponible.IE9 ignorando CSS para ciertas páginas?

Cuando aparezca la consola de desarrollo de IE9 para la página rota, veo:

SEC7113: CSS was ignored due to mime type mismatch

Eso explica por qué las páginas muestren de forma inadecuada, pero la pregunta es, ¿por qué estoy viendo que el error de una página, pero no la otra?

Usando el violinista, el mismo CSS se sirve a ambos sitios, y ambos sitios tienen una la metaetiqueta:

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

Sé que IE9 se encuentra todavía en fase beta, pero estoy tratando de averiguar por qué esto es un problema con mi sitio

+0

Enviaría este como un error a microsoft. (¿Qué doctype es el html?) –

+1

En el modo de estándares IE9, incluso las hojas de estilo del mismo origen se ignorarán a menos que se entreguen con un tipo MIME text/css. http://blogs.msdn.com/b/ie/archive/2010/10/26/mime-handling-changes-in-internet-explorer.aspx – Amitd

Respuesta

12

Esto no se parece a una emulación de IE, parece que el TIPO DE CONTENIDO en la respuesta no es "text/css". Parece que IE9 exige que los archivos que se espera que contengan CSS estén realmente marcados como tales.

Apenas por interés, ¿se procesan las páginas de CSS de algún modo? es decir, ¿son renderizados por una página ASPX para permitirle inyectar CSS? Si ese es el caso, entonces es posible que desee asegurarse de que su declaración de la página en la parte superior incluye la declaración ContentType, por ejemplo:

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

Sí, los archivos css se almacenan como blobs binarios, luego se transmiten hasta el cliente. Estos archivos no tienen los encabezados adecuados establecidos. Una vez que establecimos los encabezados, todo funcionó. – Alan

5

Resulta, IE9 ignorará los tipos de contenido que faltan para todos los sitios que en su " zona de confianza ".

Los sitios fuera de la zona de confianza no mostrarán el CSS si falta un encabezado de tipo de contenido.

+5

IE9 requiere un tipo MIME de texto/CSS para cualquier hoja de estilos utilizada por una página de modo estándar. IE9 requiere un tipo MIME de texto/CSS para cualquier hoja de estilo utilizada por cualquier página de modo si la respuesta tiene un encabezado X-Content-Type-Options: nosniff. IE9 requiere un tipo MIME de texto/CSS para cualquier hoja de estilo que sea dominio cruzado, a menos que la página de origen esté en la Zona de confianza. – EricLaw

+0

¿Eso incluye 'text/css; charset = utf-8'? Tengo un cliente que usa IE9 que tiene problemas con un archivo CSS de tipo de letra que se entrega con ese 'Tipo de contenido '. –

Cuestiones relacionadas