19

Google の Page Speedアプリケーションをサイトに対して実行したところ、推奨事項の 1 つは、ブラウザのキャッシュを活用することでした。これを拡張すると、次のことが明らかになりました。

次のキャッシュ可能なリソースの鮮度の有効期間は短いです: 次のリソースの有効期限を少なくとも 1 週間先に指定してください:

<画像の長いリスト>
<いくつかの JavaScript ファイル>

特定の画像の「鮮度の寿命」を延ばすにはどうすればよいですか?

IIS7.5で動作するASP.NETプロジェクトです。

4

3 に答える 3

50

私はこのサイトの他の場所で私の質問に対する答えを見つけました。うわー!(最初に投稿したときに表示されなかった理由はわかりませんが、気にしないでください。最終的にはそこに到達しました。)

興味のある人にとって、答えはこれでした(Gabriel McAdamsによって投稿されたように):


これはIISで行います。IIS 7を使用している場合は、web.configにヘッダーを追加できます。これはsystem.webServerセクションにあります。

<staticContent>
    <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>

これにより、すべての静的コンテンツの有効期限HTTPヘッダーが2020年に設定されます。静的コンテンツとは、画像、スクリプトファイル、スタイルシートなど、ASP.NETエンジンを介して提供されないものを意味します。

または、相対的な有効期限を使用するには、次を使用します。

<staticContent>
    <clientCache cacheControlMaxAge ="2.00:00:00" cacheControlMode="UseMaxAge" />
</staticContent>

これにより、すべての静的コンテンツの有効期限HTTPヘッダーが2日に設定されます。

于 2010-06-11T10:50:51.943 に答える
4

画像、html、js、cssファイルなどの静的コンテンツにExpiresヘッダーを追加する必要があります。system.webServerIIS7を使用して、web.configのセクションにexpiresヘッダーを簡単に追加できます。

<staticContent>
    <clientCache httpExpires = "Mon、2020年5月1日05:00:00 GMT" cacheControlMode = "UseExpires" />
</ staticContent>
于 2010-06-10T18:51:53.657 に答える
2

通常必要なのは、すべてのアセット (css、js、および画像) をキャッシュすることです。html ファイルにはキャッシュ バスティング リンクが含まれているため、画像を更新することができます。

これを機能させるには、html ファイルを の一部にすることはできませんstaticContent。HTML ファイル用の新しいハンドラーを追加すると、それらが永続的にキャッシュされなくなります。

    <staticContent>
        <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
    </staticContent>
    <handlers>
      <add
        name="HtmlHandler"
        path="*.html"
        verb="*"
        type="System.Web.Handlers"
        preCondition="integratedMode"
      />
    </handlers>
于 2015-11-15T10:50:38.717 に答える