2012-04-16 4 views
3

デフォルトでは、Sitecoreはページをキャッシュしません。 web.configファイルでは、このSitecoreでレスポンスヘッダーのCache-Controlを設定する方法は?

<setting name="DisableBrowserCaching" value="false"/> 

を設定し、パイプラインプロセッサ

page.Response.Cache.SetExpires(DateTime.Now.AddSeconds(60)); 
page.Response.Cache.SetCacheability(HttpCacheability.Public); 

を作成するが、それはうまくいきませんでした、応答ヘッドはno-cacheのまま。ところで、私はrenderLayoutのパイプラインを追加します、誰も知っていますか?ありがとう!

+0

使用しているSitecoreのバージョンは何ですか? –

答えて

3

これは、最初にDisableBrowserCachingの設定をtrueに設定して再現しようとしました。これにより、実際にはno-cacheヘッダーが生成されます。

私はそれをfalseに設定して、ページをリロードし、no-cacheヘッダーが消えました。他に何も必要ありませんでした。

有効期限のヘッダーを設定する場合は、IISのHTTP応答ヘッダー機能でこれを行う必要があります。

+0

ありがとう!私はそれを考え出した。 layout.aspxに<%@ OutputCache Location = "None" VaryByParam = "none"%>がありました。 APIが動作しなかった理由です。まずそれを削除する必要があります! – user822211

1

コンテンツがHTMLとしてレンダリングされる前に、Sitecoreには7つのレイヤーのキャッシュがあります。コンテンツがレンダリングされる前にすべてのキャッシュを制御できます。しかし、デフォルトでキャッシュが存在しないことは真実です。

これは、Sitecoreのページが動的なためです。現在の状況に応じてレイアウトやコンテンツを変更します。特にデバイス(http://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/)を使用し、Sitecore DMSを使用する場合、コンテンツはデバイスとユーザーごとに異なる方法でレンダリングされます。

独自のブラウザキャッシュメカニズムを構築する場合は、静的コンテンツのページでのみ行うようにしてください。

関連する問題