web-dev-qa-db-ja.com

IISの静的リソースのHTTPヘッダーに有効期限または最大年齢を設定する方法

IIS 6およびIIS 7をWebサーバーとして使用しています。

Googleのページ速度をオンラインで実行した後、次のように注意します:Setting an expiry date or a maximum age in the HTTP headers for static resources instructs the browser to load previously downloaded resources from local disk rather than over the network.

そして、それは多くのプレーンimages、myjavascript filesおよびスタイルシート

どうすればこれらの静的ファイルの有効期限を設定する?これはブラウザによって自動的に行われたと思いますか?

45
Edelcom

ブラウザのキャッシュを活用:

静的リソースのHTTPヘッダーに有効期限または最大有効期間を設定すると、以前にダウンロードしたリソースをネットワーク経由ではなくローカルディスクから読み込むようにブラウザーに指示します。

http://code.google.com/speed/page-speed/docs/caching.html#LeverageBrowserCaching

静的リソースのHTTPヘッダーに有効期限または最大年齢を設定するには

開くIIS manager->サイトをクリックします->ホームページでHTTP応答ヘッダーをクリックします-> [アクション]パネルで[共通ヘッダーの設定]をクリックします-> [有効期限切れのWebコンテンツを確認]-> [7日後に設定]日(ページ速度分析で提案されているように、「次のリソースに対して少なくとも1週間先に有効期限を指定する」

http://technet.Microsoft.com/en-us/library/cc770661%28WS.10%29.aspx

29
Rami Sarieddine

Cache-Controlのmax-ageとExpiresヘッダーの両方を設定しないと、Googleツールが文句を言うことがあります。IISはmax-ageを設定するだけです。これは本当に問題ありません。確認できます。 chromeまたはfirebugを使用し、[Net Debug]パネルを見て応答ヘッダーを検査します。

3
Tim H

静的ファイルの有効期限の設定は、IISのWeb.configファイルで行う必要があります。 ISSの知識はあまりありませんが、これはWebで見つけました

http://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/translate-htaccess-content-to-iis-webconfig

<caching>
   <profiles>
     <add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
     <add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00:00" />
   </profiles>
</caching>

上記のコードは、最大14日間、.htmlファイルのキャッシュを有効にします。 .phpファイルの場合、キャッシュが実行されないことを確認してください。

詳細については http://www.iis.net/configreference/system.webserver/staticcontent/clientcache

2