2013-03-19 35 views
7

Ho la seguente web.config:IIS 7.5 statico Content Compression (non coerenti)

<urlCompression doStaticCompression="true" /> 
     <httpCompression> 
      <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> 

piano maggio non consente la compressione dinamica

Il problema è che quando richiedo css o js, ​​IIS rispondere con GZIP e aggiungere variare: accettare-encoding a volte e altro tempo non comprime CSS né JS, non riesco a trovare lo schema è una sorta di casuale.

Provo sempre CTRL F5, anche quando si accede a www.mysite.com css e js vengono compressi casualmente o meno.

NB: ospitato su NetworkSolution.

Cosa c'è di sbagliato con la mia configurazione o IIS.

Grazie

+0

Quando provo http://cdn.novopath.com/content/css/master.css su http://www.whatsmyip.org/http-compression-test/ la prima volta dice che non compresso la seconda volta dice compressa! – Sameh

risposta

15

Dopo un sacco di ricerche, ho finalmente trovato quello ottenuto compressione lavorando in modo più coerente sul mio IIS 7.5. Per iniziare, IIS non comprimerà un file a meno che non venga caricato abbastanza spesso. Ciò fa sorgere la domanda "cosa considera IIS abbastanza spesso?" Bene, i valori predefiniti sono 2 volte ogni 10 secondi. Yikes!

Questa impostazione può essere modificata in web.config, ma la sezione deve essere sbloccata prima in applicationHost.config. Ecco i comandi:

Prima sbloccare la sezione:

C: \ Windows \ System32 \ inetsrv \ config appcmd.exe sblocco /section:system.webServer/serverRuntime

sbloccato sezione "system.webServer/serverRuntime" nel percorso di configurazione "MACHINE/WEBROOT/APPHOST".

Ora che è fatto, modificare il file web.config

<?xml version="1.0" encoding="UTF-8"?> <configuration> 
    <system.webServer> 
     <serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="10:00:00" /> 
     ... 

In questo caso, ho impostato per colpire il file una volta in un periodo di 10 ore. È possibile regolare i valori secondo necessità. Ecco il documento che spiega l'elemento serverRuntime:

http://www.iis.net/configreference/system.webserver/serverruntime

Spero che questo aiuta a ottenere il vostro compressione funziona correttamente.

+0

Ho fatto una risposta recente qui che fornirà un po 'più di spiegazione: http://stackoverflow.com/questions/14796225/gzip-js-in-iis-doesnt-get-compressed-if-static-compression-enabled/24906331 # 24906331 – ianbeks

+0

questo si applica anche alla compressione del contenuto dinamico? – TheQult