IIS 6 ベースの Web サイトのフォルダーに、(帯域幅を維持するために) できるだけダウンロードしないようにしたい静止画像がいくつかあります。コンテンツの有効期限を 30 日後に期限切れになるように設定しました。ブラウザ、プロキシ、およびゲートウェイ キャッシュによるキャッシュを最大化するために、IIS で他にできることはありますか?
Cache-Control ヘッダーを追加するなど?他に何か?
IIS 6 ベースの Web サイトのフォルダーに、(帯域幅を維持するために) できるだけダウンロードしないようにしたい静止画像がいくつかあります。コンテンツの有効期限を 30 日後に期限切れになるように設定しました。ブラウザ、プロキシ、およびゲートウェイ キャッシュによるキャッシュを最大化するために、IIS で他にできることはありますか?
Cache-Control ヘッダーを追加するなど?他に何か?
この質問からの私の答えは次のとおりです。静的コンテンツのhttpヘッダーに「期限切れ」がありますか?方法
@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.
)
これにより、Webルート内の各CSSファイルのキャッシュ値が5日に設定され、次のように実行されます。
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
一種の苦痛ですが、実行可能です。
ところで-HttpExpiresの値を取得するには、GUIで値を設定してから、
AdsUtil.vbs ENUM W3SVC/1/root/File.txt
必要な実際の値を取得するには
http://www.galcho.com/Blog/post/2008/02/27/IIS7-How-to-set-cache-control-for-static-content.aspx
これは、次の内容をカバーするブログ投稿です。