Come posso impostare la cachability dei file statici in IIS?
-
08-07-2019 - |
Domanda
Ho alcune immagini statiche in una cartella sul mio sito Web basato su IIS 6 che voglio scaricare il meno possibile (per preservare la larghezza di banda). Ho impostato la scadenza del contenuto in modo che scada dopo 30 giorni. C'è qualcos'altro che posso fare in IIS per cercare di massimizzare la memorizzazione nella cache da browser, proxy e cache del gateway?
Come aggiungere un'intestazione Cache-Control? Nient'altro?
Soluzione
http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx
Questo è un post sul blog che copre quanto segue:
- Consenti l'impostazione del contenuto statico prioritario
- imposta le impostazioni della cache usando i seguenti comandi
- Memorizzalo nella cache sul client
Altri suggerimenti
Ecco la mia risposta a questa domanda: & Exp; & exp; " nell'intestazione http per contenuti statici? 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.
)
Che imposta il valore di memorizzazione nella cache per ciascun file CSS in una radice Web su 5 giorni, quindi eseguirlo in questo modo:
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
Tipo di doloroso, ma praticabile.
A proposito: per ottenere il valore per HttpExpires, impostare il valore nella GUI, quindi eseguire
AdsUtil.vbs ENUM W3SVC/1/root/File.txt
per ottenere il valore effettivo necessario