Comment définir la cachabilité des fichiers statiques dans IIS?
-
08-07-2019 - |
Question
J'ai des images statiques dans un dossier de mon site Web IIS 6 que je souhaite télécharger le moins possible (pour préserver la bande passante). J'ai paramétré l'expiration du contenu pour qu'elle expire après 30 jours. Y a-t-il autre chose que je puisse faire dans IIS pour essayer de maximiser la mise en cache par les navigateurs, les caches de proxy et de passerelle?
Par exemple, ajouter un en-tête Cache-Control? Quelque chose d'autre?
La solution
http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx
Ceci est un article de blog couvrant les domaines suivants:
- Autoriser le remplacement du paramètre de contenu statique
- définir les paramètres de cache à l'aide des commandes suivantes
- Cachez-le sur le client
Autres conseils
Voici ma réponse à cette question: "Expires " dans l'en-tête http pour le contenu statique? comment faire
@ECHO OFF
REM ---------------------------------------------------------------------------
REM Caching - sets the caching on static files in a web site
REM syntax
REM Caching.CMD 1 d:\sites\MySite\WWWRoot\*.CSS
REM
REM %1 is the WebSite ID
REM %2 is the path & Wildcard - for example, d:\sites\MySite\WWWRoot\*.CSS
REM _adsutil is the path to ADSUtil.VBS
REM ---------------------------------------------------------------------------
SETLOCAL
REM *******
REM SET THIS TO POINT TO adsutil.vbs - TYPICALLY c:\inetpub\adminscripts\adsutil.vbs
REM *******
SET _adsutil=D:\Apps\Scripts\adsutil.vbs
FOR %%i IN (%2) DO (
ECHO Setting Caching on %%~ni%%~xi
CSCRIPT %_adsutil% CREATE W3SVC/%1/root/%%~ni%%~xi "IIsWebFile"
CSCRIPT %_adsutil% SET W3SVC/%1/root/%%~ni%%~xi/HttpExpires "D, 0x69780"
ECHO.
)
Ce qui définit la valeur de mise en cache de chaque fichier CSS d'une racine Web sur 5 jours, puis l'exécutez comme suit:
Caching.CMD 1 \site\wwwroot\*.css
Caching.CMD 1 \site\wwwroot\*.js
Caching.CMD 1 \site\wwwroot\*.html
Caching.CMD 1 \site\wwwroot\*.htm
Caching.CMD 1 \site\wwwroot\*.gif
Caching.CMD 1 \site\wwwroot\*.jpg
Un peu douloureux, mais réalisable.
BTW - pour obtenir la valeur de HttpExpires, définissez-la dans l'interface graphique, puis exécutez
AdsUtil.vbs ENUM W3SVC/1/root/File.txt
pour obtenir la valeur réelle dont vous avez besoin