4

静的コンテンツのhttpヘッダーに「Expires」を追加する最良の方法は何ですか?例えば。画像、css、js

WebサーバーはIIS6.0です。言語は古典的なASPです

4

6 に答える 6

6

次のようなことを試すことができます:

@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

必要な実際の値を取得するには

于 2008-09-19T17:52:21.267 に答える
4

これはあなたが求めているものだと思います.IISマネージャーのHTTPヘッダーの下にあるコンテンツの有効期限です。~/Resources のようなフォルダーの下に静的コンテンツを貼り付け、その特定のフォルダーに有効期限を設定して、アプリケーションの残りの部分よりもはるかに長い寿命を持つパターンを使用します。

記事全文へのリンクは次のとおりです: IIS 6.0 F1: Web サイトのプロパティ - HTTP ヘッダー タブ

于 2008-09-19T14:36:00.507 に答える
1

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>
于 2015-11-15T08:48:44.860 に答える
0

IIS管理者では、ファイルタイプごとに設定するか、(aspxなどの動的なものの場合)コードで設定できます。セットアップが完了したら、Mozilla firefox + live headers plugin などのツールで出力されるヘッダーを確認する必要があります。または、http: //www.httpviewer.net/ などの Web ベースのツールを使用することもできます。

于 2009-01-27T01:13:00.113 に答える
-2

これがあなたが探しているものであるかどうかはわかりませんが、それは私のページがキャッシュされるのを防ぎます。

<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">

これらは、参照がなくなったオンラインの記事から入手しました。

于 2008-09-19T14:32:26.100 に答える
-3

ひどい解決策です。adsutil で作成する最初のコマンドは、作成しようとしているファイルが既に存在するため、エラー -2147024713 (0x800700B7) で失敗します。

ありがとう。

于 2009-03-31T19:25:24.750 に答える