2010-06-28 4 views
0

J'utilise .NET et la question est simple:Comment puis-je retourner gzip css/js

Comment ou puis-je laisser le navigateur web savoir que

<script type="text/javascript" src="/Scripts/myjsfile.js"/> 

est au format gzip?

Puis-je simplement ajouter .gz à la source?

This article, ce qui est assez cool, montre comment compresser mon HTML dynamique en se connectant à l'objet de flux Response.Filter pour retourner le contenu gzippé. Mais mon css/js n'est pas dynamique, donc je ne vois pas l'intérêt de gaspiller des cycles de cpu pour chaque requête.

Alors, comment puis-je dire au navigateur Web qu'il s'agit d'un contenu compressé ou le sait-il déjà?

Répondre

0

réponse de l'étiquette avec en-tête:

Content-Encoding: gzip 

MISE À JOUR: Je viens de réaliser que je répondais à votre question littérale - comment le client saura - mais pas ce que vous devez faire sur le serveur pour le faire envoyer par exemple . Malheureusement, je ne travaille pas avec IIS, donc je ne peux pas vous donner une réponse intelligente.

Si personne ne vous répond, vous pouvez faire des choses dynamiques vous-même, et ce n'est pas beaucoup plus lent. La seule chose que fondamentalement Apache fait est le suivant:

  • Il vérifie si Accept-Encoding en-tête de la demande comprend gzip.
  • Si elle le fait, puis vérifie s'il y a fichier filename + ".gz"
  • Si elle ne, envoie cela, il marquage avec Content-Encoding: gzip et approprié Content-Type
  • Sinon, vérifiez s'il y a filename, envoyez que si elle existe
  • Si cela échoue, 404.

Vous pouvez également le dire aux fichiers gzip à la volée; c'est plus économique dans l'espace, car vous ne gardez pas deux versions du fichier sur le disque, mais plus lentement (car vous avez besoin de compresser à chaque requête).

+0

Pouvez-vous s'il vous plaît partager un lien vers la ressource sur Apache vérifiant si le nom de fichier + fichier ". Gz" existe? J'ai fait juste cela, gzippé le fichier JS et ajouté l'extension ".gz" mais cela ne semble pas avoir d'effet. Existe-t-il une sorte de directive de configuration pour permettre à ce comportement de fonctionner? – Frodik

0
##################################################### 
# CONFIGURE media caching 
# 
Header unset ETag 
FileETag None 
<FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> 
Header unset Last-Modified 
Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" 
Header set Cache-Control "public, no-transform" 
</FilesMatch> 
# 
##################################################### 

Changez le "FilesMatch" à ce que vous voulez gzippé. Le serveur compressera automatiquement vos fichiers non compressés en gzip, les enverra au navigateur et le navigateur décompressera le fichier dans sa forme originale.