Risposte:
Puoi abilitare la compressione GZIP interamente nel tuo Web.config
file. Ciò è particolarmente utile se si utilizza l'hosting condiviso e non è possibile configurare direttamente IIS o se si desidera che la propria configurazione venga trasportata tra tutti gli ambienti target.
<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>
Per verificare se la compressione funziona o meno, utilizzare gli strumenti per sviluppatori in Chrome o Firebug per Firefox e assicurarsi che sia impostata l'intestazione della risposta HTTP:
Content-Encoding: gzip
Nota che questa intestazione non sarà presente se il codice di risposta è 304 (non modificato). In tal caso, esegui un aggiornamento completo (tieni premuto Maiusc o Control mentre premi il pulsante di aggiornamento) e ricontrolla.
.js
no. Inoltre, ho provato ad aggiungere application/x-javascript
. Usando insieme a Tomcat, quindi rimosso il directory
parametro.
Dovrai abilitare la funzione nel pannello di controllo delle funzionalità di Windows:
Global Gzip in HttpModule
Se non hai accesso all'istanza IIS finale (hosting condiviso ...) puoi creare un HttpModule che aggiunge questo codice a ogni evento HttpApplication.Begin_Request:
HttpContext context = HttpContext.Current;
context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;
analisi
Complimenti, nessuna soluzione è fatta senza test. Mi piace usare il plug-in " Liveheaders " di Firefox che mostra tutte le informazioni su ogni messaggio http tra il browser e il server, compresa la compressione, la dimensione del file (che è possibile confrontare con la dimensione del file sul server).
Ho solo bisogno di aggiungere la funzionalità nelle funzionalità di Windows come ha detto Charlie. Per le persone che non riescono a trovarla su Windows 10 o sul server 2012+ la trovano come di seguito. Ho faticato un po '
Se stai anche provando a decomprimere le pagine dinamiche (come aspx) e non funziona, probabilmente perché l'opzione non è abilitata (devi installare il modulo di compressione del contenuto dinamico utilizzando le funzionalità di Windows):
http://support.esri.com/en/knowledgebase/techarticles/detail/38616
Un altro modo semplice per testare senza installare nulla, né dipende dalla versione di IIS. Incolla il tuo URL a questo link - SEO Checkup
Per aggiungere a web.config: http://www.iis.net/configreference/system.webserver/httpcompression
Prova Firefox con i componenti aggiuntivi Firebug installati. Lo sto usando; ottimo strumento per gli sviluppatori web.
Ho abilitato la compressione Gzip anche nel mio IIS7 usando web.config.