2008-11-13 8 views
3

J'ai des images statiques dans un dossier sur mon site Web basé sur IIS 6 que je veux être téléchargé le moins possible (pour préserver la bande passante). J'ai défini l'expiration du contenu sur 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 proxy et les caches de passerelle?Comment définir la cachabilité des fichiers statiques dans IIS?

Comme l'ajout d'un en-tête Cache-Control? Rien d'autre?

Répondre

1

Voici ma réponse à cette question: "Expires" in http header for static content? how-to

@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. 
) 

qui définit la valeur de mise en cache pour chaque fichier CSS dans une racine web à 5 jours, puis exécutez comme ceci:

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 

sorte de douloureux, mais réalisable.

BTW - pour obtenir la valeur pour HttpExpires, définissez la valeur 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

Questions connexes