Jak mogę włączyć IIS7 do gzipowania plików statycznych, takich jak js i css, i jak mogę sprawdzić, czy IIS7 naprawdę je zgzipuje przed wysłaniem do klienta?
źródło
Jak mogę włączyć IIS7 do gzipowania plików statycznych, takich jak js i css, i jak mogę sprawdzić, czy IIS7 naprawdę je zgzipuje przed wysłaniem do klienta?
Możesz włączyć kompresję GZIP całkowicie w swoim Web.config
pliku. Jest to szczególnie przydatne, jeśli korzystasz z hostingu współdzielonego i nie możesz bezpośrednio skonfigurować usług IIS lub chcesz, aby konfiguracja była przenoszona między wszystkimi środowiskami docelowymi.
<system.webServer>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
Aby sprawdzić, czy kompresja działa, użyj narzędzi programistycznych w Chrome lub Firebug dla Firefoksa i upewnij się, że ustawiony jest nagłówek odpowiedzi HTTP:
Content-Encoding: gzip
Pamiętaj, że ten nagłówek nie będzie obecny, jeśli kod odpowiedzi to 304 (niezmodyfikowany). W takim przypadku wykonaj pełne odświeżenie (przytrzymaj klawisz Shift lub Control podczas naciskania przycisku odświeżania) i sprawdź ponownie.
.js
nie robi tego. Próbowałem również dodaćapplication/x-javascript
. Używając razem z tomcat, usunąłemdirectory
parametr.Musisz włączyć tę funkcję w panelu sterowania Funkcje systemu Windows:
źródło
Globalny Gzip w HttpModule
Jeśli nie masz dostępu do końcowej instancji IIS (hosting współdzielony ...), możesz utworzyć HttpModule, który dodaje ten kod do każdego zdarzenia HttpApplication.Begin_Request:
Testowanie
Kudos, żadne rozwiązanie nie jest zrobione bez testowania. Lubię używać wtyczki Firefox „ Liveheaders ”, która pokazuje wszystkie informacje o każdej wiadomości http między przeglądarką a serwerem, w tym kompresję, rozmiar pliku (który można porównać do rozmiaru pliku na serwerze).
źródło
pod Windows 2012 R2 można znaleźć tutaj:
źródło
Musiałem tylko dodać tę funkcję do funkcji systemu Windows, jak wspomniał Charlie. Dla osób, które nie mogą jej znaleźć na Windows 10 lub serwerze 2012+, znajdź ją jak poniżej. Walczyłem trochę
Windows 10
Windows Server 2012 R2
serwer okien 2016
źródło
Jeśli używasz YSlow z Firebug i analizujesz wydajność strony, YSlow z pewnością powie ci, jakie artefakty na twojej stronie nie są rozpakowywane!
źródło
Jeśli próbujesz również zgzipować strony dynamiczne (takie jak aspx) i nie działa, to prawdopodobnie dlatego, że opcja nie jest włączona (musisz zainstalować moduł dynamicznej kompresji treści za pomocą funkcji systemu Windows):
http://support.esri.com/en/knowledgebase/techarticles/detail/38616
źródło
Kolejny łatwy sposób na testowanie bez instalowania czegokolwiek, nie zależy też od wersji IIS. Wklej swój adres URL do tego linku - Sprawdzanie SEO
Aby dodać do web.config: http://www.iis.net/configreference/system.webserver/httpcompression
źródło
Wypróbuj Firefox z zainstalowanymi dodatkami Firebug. Używam tego; świetne narzędzie dla programistów stron internetowych.
Mam włączoną kompresję Gzip również w moim IIS7 za pomocą web.config.
źródło
Dla wszystkich biednych facetów, którzy muszą zmagać się z serwerem niemiecki / deutsche :)
źródło