2008-08-22 10 views
9

Mam aplikację webforms ASP.NET (3.5 SP1), nad którym pracuję, i próbuję włączyć gzip fpr HTML i CSS, które sprowadza się do potoku. Używam this implementation (i wypróbowałem kilka innych, które podpinają się do Application_BeginRequest), i wydaje się, że korumpuje zewnętrzny plik CSS, którego używają strony, ale sporadycznie ... nagle wszystkie style znikną na odświeżeniu strony, pozostań w ten sposób na chwilę, a potem nagle zacznij znowu działać.Dlaczego kompresja gzip ASP.NET powoduje uszkodzenie CSS?

Zarówno IE7, jak i FF3 wykazują takie zachowanie. Przeglądając CSS za pomocą paska narzędzi programisty WWW, zwraca jibberish. Nagłówek kontroli pamięci podręcznej przychodzi jako "prywatny", ale nie wiem wystarczająco dużo, aby dowiedzieć się, czy to jest czynnik przyczyniający się, czy nie.

Działa również na serwerze programistycznym ASP.NET. Może byłoby dobrze z IIS, ale rozwijam się na XP i to byłoby IIS5.

Odpowiedz

5

Czy tylko pliki CSS są uszkodzone? Czy pliki JS (lub inne statyczne pliki tekstowe) działają poprawnie?

Czy możesz również powielić to zachowanie, jeśli przejdziesz bezpośrednio do pliku CSS?

mam włączone tylko kompresję na IIS Windows 2003 Server za pomocą tej metody: karta → Serwis

  1. IIS → Web Sites → Properties, sprawdzić oba pola
  2. IIS → Web Rozszerzenia serwisowe → prawy klik, Dodaj nowy
     
        Name 
         Http Compression 
        Required Files 
         %systemroot%\system32\inetsrv\gzip.dll
  3. IIS → kliknij prawym przyciskiem myszy węzeł najwyższego poziomu, Internet Information Services, sprawdź umożliwiają bezpośrednie Metabase Edycja
  4. kopii zapasowych i Edycja %systemroot%\system32\inetsrv\MetaBase.xml
    1. Znajdź Location ="/LM/W3SVC/Filters/Compression/gzip"
      • Dodaj png, css, js i innych statycznych rozszerzeń plików do HcFileExtensions
      • Dodaj aspx oraz wszelkie inne rozszerzenia wykonywalny do HcScriptFileExtensions
      • Zapisz
  5. Uruchom ponownie IIS (uruchom iisreset)

Jeśli masz serwer Windows 2003/2008 do grania, możesz spróbować tego podejścia.

+1

IE7/8 pobierało uszkodzone pliki zip, podczas gdy Firefox/Chrome/Opera nie. Wydawało się, że to dlatego, że IIS6 kompresował gzip pliku zip, co zaburzyłoby IE. Twoje rozwiązanie naprawiło mój problem, a usługi IIS nie próbują ponownie kompresować plików skompresowanych. –

0

Jeśli chcesz wdrożyć na IIS 6 lub IIS 7, po prostu użyj wbudowanej kompresji IIS. Używamy go w witrynach produkcyjnych do kompresji HTML, CSS i JavaScript bez żadnych błędów. Również buforuje skompresowaną wersję na serwerze, więc trafienie kompresji jest podejmowane tylko raz.

+0

Niestety, używanie domyślnych ustawień wydaje się łamać pliki zip w IE7/8. Jak się okazuje, domyślnie IIS chce spróbować skompresować pliki zip, co jest dość głupie. –

Powiązane problemy