2009-08-06 17 views
5

Moja strona jest skompresowana na gzip i nie ładuje się poprawnie w IE. Działa dobrze w FF/Chrome, ale w IE pojawia się tylko okno z prośbą o pobranie pliku .gz, który zawiera dokument HTML strony.Dlaczego kompresja gzip w Internet Explorerze nie działa?

Czy to normalne? Czy muszę wyłączyć gzip?

+1

która wersja programu Internet Explorer? – Mez

+0

IE 7. nie przetestowałem na 6 lub 8 jeszcze nagłówku – chris

Odpowiedz

16

Czy wysyłasz poprawne nagłówki?

Musisz wysłać nagłówek

Content-Encoding: gzip 

dla IE do zrozumienia, że ​​jest skompresowane (Firefox, et al są wystarczająco inteligentny, aby wykryć automatycznie - choć nie powinni!)

w PHP można to zrobić za pomocą: -

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

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

+0

dzięki chłopaki, który był pomocny – chris

+7

"Wykrywanie tego automatycznie" nie jest legalne. – EricLaw

0

widziałem problemów podczas korzystania z programu Internet Explorer gzip na stronie, która ma na nim lampę błyskową. Jeśli twoja strona ma flash, może to być powód. Nie pamiętam przyczyny, a w momencie, gdy ją znaleźliśmy, powodowało to problemy w witrynie na żywo, dlatego właśnie wyłączyliśmy gzip dla Internet Explorera, aby ominąć to.

+1

To jest poprawny komentarz, IE6, jeśli widzi nagłówek "Vary" wraz z Content-Encoding jako gzip nie może pobrać pełnej odpowiedzi. – shivaspk

7

Jedna rzecz do dodania - powinieneś wyłączyć kompresję gzip dla IE6 pre-SP2. Przed wersją SP2 program IE6 nie zawsze prawidłowo odczytuje i buforuje zawartość spakowaną gzipem, a kończy się to błędnym kodem.

Możesz zidentyfikować instalację IE6 SP2, szukając "SV1" w ciągu znaków agenta użytkownika.

0

Problemem są nagłówki HTTP. Jeśli masz nagłówek gzip wraz z jedną z następujących czynności:

  • Vary
  • transferu Encoding: pakietowego

jeden lub oba muszą zostać usunięte.

Ten problem jest bardziej prawdopodobne, że na komputerze jest uruchomiony serwer Apache HTTP Apache HTTP Server, ponieważ można używać pofragmentowane kodowanie na każdy rodzaj pliku. Obejmuje to pliki statyczne, takie jak plik JavaScript lub plik .gif. W przypadku wystąpienia problemu opisanego w tym artykule zawartość przechowywana w pamięci podręcznej programu Internet Explorer może być obcięta lub uszkodzona.

XML, XHTML i plików XSLT, zapobiegają parsowania jako text/html lub text/xsl:

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

I dodać application/xml jako mapowanie rodzaj zawartości:

AddType application/xml .xsl 

Referencje

Powiązane problemy