2

これを default.aspx (CMS の外部にある) に入れることで、Sitecore 対応の ASP.NET サイトで出力キャッシュを有効にしています。

<%@ OutputCache Duration="300" VaryByParam="None" %>

そして私のWeb.configで:

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

これは、http://[website]/default.aspx のように自分のページに直接アクセスすると機能しますが、ルート サイト http://[website]/ を参照すると機能しません。この場合、繰り返し要求で 304 (変更なし) ではなく、常に 200 応答を返します。

Sitecore を使用していない Web サイトで同じことを試しましたが、キャッシングは IIS 7 および Sitecore 6.4.1 のすべてのインスタンスで機能します。

Sitecore 対応サイトのデフォルト (拡張機能なし) ASP.NET ページの出力キャッシュを有効にするにはどうすればよいですか?

更新:
ローカル マシンで動作しているようです (この問題は QA 環境で発生しました)。唯一の違いは、IIS 7.0 ではなく IIS 7.5 を使用していることですが、web.config と Sitecore インスタンスは同じです。

また、同じ動作を示す別のテスト ページ (http://[website] /Test/default.aspx ) を作成したので、影響を受けるのはルートだけではありません。

更新 2:
悪いニュース - Sitecore は、出力キャッシュが公式にサポートされていないことを確認しました:

「Sitecore CMS は、IIS で有効なユーザー モードまたはカーネル モードの出力キャッシュと連携するように設計されておらず、その使用をサポートしていません。」

これは、特定の URL や環境で機能することがある理由を説明していません。

4

3 に答える 3

1

クイックテストを行いましたが、DisableBrowserCachingをfalseに設定し、aspxレイアウトファイルにOutputCacheディレクティブを追加すると正常に機能するようです。

そうです、応答コードは200 OKですが、ページは(サーバーからではなく)ブラウザーのキャッシュから取得されます。応答コード304は、サーバーへの呼び出しがあり、サーバーが何も変更されていないと応答したことを意味します。

ページのコードがサーバー側で実行されているかどうかを再確認できますか?

于 2012-05-10T20:31:23.323 に答える
-1

Sitecore を使用している場合、プレゼンテーション設定が常にこれらのレイアウトの 1 つになるように、各レイアウト (.aspx) ファイルにディレクティブを配置する必要があります。

<%@ OutputCache Duration="300" VaryByParam="None" %> 

ホームページがディレクティブを除いた別のレイアウトを使用していた場合、それが動作を説明している可能性があります。

それはさておき、Sitecore のビルトイン キャッシング メソッドを使用する方が良い可能性があります。

于 2012-05-11T12:56:43.143 に答える