2009-08-06 24 views
5

Mi sitio está comprimido gzip y no se carga correctamente en IE. Funciona bien en FF/Chrome, pero en IE, lo único que aparece es un cuadro que solicita descargar el archivo .gz que contiene el documento html para la página.¿Por qué la compresión gzip con Internet Explorer no funciona?

¿Es esto normal? ¿Debo apagar gzip?

+1

¿Qué versión de Internet Explorer? – Mez

+0

IE 7. no han probado en 6 u 8 pero – chris

Respuesta

16

¿Está enviando los encabezados correctos?

Es necesario enviar la cabecera

Content-Encoding: gzip 

para IE a entender que es gzipped (Firefox, y otros son lo suficientemente inteligente como para detectar esto automáticamente - a pesar de que no debería!)

en PHP, puede hacerlo utilizando: -

header('Content-Encoding: gzip'); 
+3

encabezado ("Content-Encoding: gzip"); – danamlund

+0

gracias chicos que fue útil – chris

+7

"Detectar esto automáticamente" no es legal. – EricLaw

0

he visto problemas al utilizar gzip con Internet Explorer en una página que tiene flash en ella. Si su página tiene flash, esta puede ser la razón. No recuerdo la causa y en el momento en que lo encontramos estaba causando problemas en un sitio en vivo, así que desactivamos gzip para que Internet Explorer lo solucione.

+1

Este es un comentario válido, IE6 si ve el encabezado "Variar" junto con Content-Encoding como gzip, no puede recuperar la respuesta completa. – shivaspk

7

Una cosa para agregar: debe desactivar la compresión gzip para IE6 pre-SP2. Antes de SP2, IE6 no siempre lee y almacena en caché el contenido comprimido gzip correctamente y termina con código mutilado.

Puede identificar una instalación de IE6 SP2 buscando "SV1" en la cadena de agente de usuario.

0

Los encabezados HTTP son el problema. Si usted tiene la cabecera gzip junto con uno de los siguientes:

  • Vary
  • transferencia Codificación: fragmentada

uno o ambos necesitan ser eliminado.

Este problema es más probable que ocurra en una computadora que ejecuta Apache HTTP Server porque Apache HTTP Server puede usar la codificación fragmentada en cualquier tipo de archivo. Esto incluye archivos estáticos como un archivo JavaScript o un archivo .gif. Cuando se produce el problema que se describe en este artículo, el contenido que está almacenado en el caché de Internet Explorer puede estar truncado o dañado.

Para XML, XHTML y archivos XSLT, evitar que sea interpretado como text/html o texto/XSL:

RewriteCond %{HTTP_ACCEPT} text\/html [OR] 
    RewriteCond %{HTTP_ACCEPT} text\/xsl [OR] 
    RewriteCond %{HTTP_ACCEPT} gif|jpeg|png$ 
    ReWriteRule .*\.(xsl|xslt)$ - [F] 

Y añadir application/xml como una asignación de tipo de contenido:

AddType application/xml .xsl 

Referencias

Cuestiones relacionadas