静的コンテンツのhttpヘッダーに「Expires」を追加する最良の方法は何ですか?例えば。画像、css、js
WebサーバーはIIS6.0です。言語は古典的なASPです
静的コンテンツのhttpヘッダーに「Expires」を追加する最良の方法は何ですか?例えば。画像、css、js
WebサーバーはIIS6.0です。言語は古典的なASPです
次のようなことを試すことができます:
@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
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
必要な実際の値を取得するには
これはあなたが求めているものだと思います.IISマネージャーのHTTPヘッダーの下にあるコンテンツの有効期限です。~/Resources のようなフォルダーの下に静的コンテンツを貼り付け、その特定のフォルダーに有効期限を設定して、アプリケーションの残りの部分よりもはるかに長い寿命を持つパターンを使用します。
記事全文へのリンクは次のとおりです: IIS 6.0 F1: Web サイトのプロパティ - HTTP ヘッダー タブ
For others coming from google: this will not work in iis6 but works in 7 and above.
In your web.config:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
IIS管理者では、ファイルタイプごとに設定するか、(aspxなどの動的なものの場合)コードで設定できます。セットアップが完了したら、Mozilla firefox + live headers plugin などのツールで出力されるヘッダーを確認する必要があります。または、http: //www.httpviewer.net/ などの Web ベースのツールを使用することもできます。
これがあなたが探しているものであるかどうかはわかりませんが、それは私のページがキャッシュされるのを防ぎます。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<META HTTP-EQUIV="Cache-Control" CONTENT="max-age=0">
これらは、参照がなくなったオンラインの記事から入手しました。
ひどい解決策です。adsutil で作成する最初のコマンドは、作成しようとしているファイルが既に存在するため、エラー -2147024713 (0x800700B7) で失敗します。
ありがとう。