2009-06-16 7 views
2

Avec l'aide de YSlow, j'essaie de régler un peu mes pages.
Je pensais que ce serait un petit effort de gros gain pour avoir mes pages compressées. Après avoir tout essayé de here, here, here et here YSlow montre toujours que mes pages sont comprimées. J'utilise asp.net mvc 1.0 sur IIS6. Avec les règles suivantes dans mon global.asax, je m'assure que mon contenu statique n'est pas géré par MVC. Cela permettra de s'assurer que mes fichiers js et css sont statiquement accessibles.Pourquoi mes pages ne sont-elles pas encore gzippées?

Ce sont Sécateur pertinentes de mon metabase.xml

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/deflate" 
     HcCompressionDll="%windir%\system32\inetsrv\gzip.dll" 
     HcCreateFlags="0" 
     HcDoDynamicCompression="TRUE" 
     HcDoOnDemandCompression="TRUE" 
     HcDoStaticCompression="TRUE" 
     HcDynamicCompressionLevel="9" 
     HcFileExtensions="htm 
      html 
      txt 
      css 
      js 
      mvc" 
     HcOnDemandCompLevel="10" 
     HcPriority="1" 
     HcScriptFileExtensions="asp 
      dll 
      exe" 
    > 
</IIsCompressionScheme> 

<IIsCompressionScheme Location ="/LM/W3SVC/Filters/Compression/gzip" 
     HcCompressionDll="%windir%\system32\inetsrv\gzip.dll" 
     HcCreateFlags="1" 
     HcDoDynamicCompression="TRUE" 
     HcDoOnDemandCompression="TRUE" 
     HcDoStaticCompression="TRUE" 
     HcDynamicCompressionLevel="9" 
     HcFileExtensions="htm 
      html 
      txt 
      css 
      js 
      mvc" 
     HcOnDemandCompLevel="10" 
     HcPriority="1" 
     HcScriptFileExtensions="asp 
      dll 
      exe" 
    > 
</IIsCompressionScheme> 

(meta: ne sais pas si je consacrions cela sur SO ou SF)

+0

Je ne suis pas sûr de ce que RO est? – AnthonyWJones

+0

Rack Overflow, le site soeur IT de Stack Overflow. Je n'arrête pas d'oublier ce que ça s'appelle vraiment. –

+1

Rack Overflow ressemble à un site porno, mais ce n'est pas le cas. J'ai vérifié. – Joseph

Répondre

4

Le problème est que la compression est l'extension liée , vous devez spécifier toutes les extensions qui doivent avoir une compression statique ou dynamique. Vous pouvez probablement voir cela en regardant les attributs HcFileExtensions et HcScriptFileExtensions respectivement. Donc, avec MVC dans IIS6 où vous n'avez pas forcément d'extensions de fichier, vous n'obtiendrez pas de compression pour le contenu dynamique. IIS7 fait les choses différemment car il utilise une liste de mimeTypes pour déclencher la compression. IIS7 avec pipeline intégré est où nous attendons vraiment de placer des applications MVC. En IIS6 c'est possible mais c'est un kludge et une compression qui fait partie des victimes.

Modifier

Pour le contenu statique sur IIS6 garder à l'esprit que la compression se produit sur un thread séparé et déclenché après la première demande de ressource, la première demande elle-même sort non compressé. Les demandes suivantes pour la ressource doivent ensuite être fournies en utilisant la version compressée.

+0

Mon contenu statique (javascript, css etc) n'est pas géré par mvc et a des extensions régulières donc je suppose qu'il pourrait bénéficier de la compression. J'ai mis à jour OP pour répondre à votre remarque. –

+1

@AnthonyWJones +1 pour cette édition, qui était un "Ah-HA!" avec ampoule sur le moment de la tête. – jerhewet