1. その他の開発課題

HTMLキャッシュの設定

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

HTMLキャッシュはレンダリングをキャッシュする出力キャッシュで、ページ全体をキャッシュするものではありません。HTMLキャッシュはウェブサイトのパフォーマンス向上に使います。

HTML出力キャッシュを有効にするには:

  1. \App_Config\Sitecore\CMS.Core\Sitecore.Sites.configファイルのsitesノードであらかじめ定義されたサイトのsite仕様をパッチし、サイトのcacheHtmlプロパティをtrueに設定して、そのサイトのHTML出力キャッシュを有効にします。

    !注インストール時に設定されたwebsiteデフォルトのサイトはすでに存在しています。この設定は、自分で作成しキャッシュをHTMLしたいサイトごとに指定する必要があります。

    !注各キャッシュのサイズは、サイトノードのhtmlCacheSizeプロパティで指定できます。

  2. Sitecoreがキャッシュ出力するレンダリングにキャッシュオプションを追加してください。これを行う方法は2通りあります:

    • レンダリングを使うたびにオプションを指定することでローカルでできます。これを行うには、コンテンツエディターでアイテムを開き、 プレゼンテーション タブで 「詳細」をクリックし、オプションを設定したいレンダリングをクリックしてください。
    • レンダリングの定義項目でオプションを指定することで、グローバルにできます。これがこのレンダリングのすべての用途のデフォルト設定となります。これを行うには、コンテンツツリーの sitecore/Layout/Renderings 部分でレンダリング定義アイテムを開き、 キャッシュ セクションのオプションに移動してください。

    選択肢は以下の通りです:

    • キャッシュ可能

      Sitecoreがレンダリングをキャッシュするかどうかを指定します。

    • インデックス更新はクリア

      Sitecoreはコンテンツ検索インデックスを更新する際にキャッシュをクリアします。

      これは、Sitecoreインスタンスがレンダリング、コントロール、またはコードを含むサブレイアウトにHTMLキャッシュを使用しており、このコードがインデックスに依存している場合に重要です。詳細は「 インデックス依存HTMLキャッシュ」をご覧ください。

    • データによって変わる

      Sitecoreはアクセスされたアイテムに基づいて出力をキャッシュします。これは、例えばヘッダーやフッターなど、コンテンツが非常に一貫している場合に有用です。

    • デバイスごとに異なる

      Sitecoreは各デバイスごとに個別に出力キャッシュを行っています。

    • ログインによって変わる

      Sitecoreは出力の2つのコピーをキャッシュします

      、もう1つは非認証ユーザー用です。

    • パラメータによって変化する

      Sitecoreはレンダリングが受け入れる各パラメータに対して出力をキャッシュします。

    • クエリ文字列によって変化

      Sitecoreは、クエリ文字列パラメータの一意な組み合わせごとに出力をキャッシュします。

    • ユーザーによって異なる

      Sitecoreは認証済みユーザーごとに出力キャッシュを行います。

  3. Sitecore cacheHtmlプロパティの値をtrueとして設定したすべてのサイトのキャッシュをクリアします。 publish:endイベントハンドラは標準的なインストールで次のように設定されています:

    ...

    公開時にサイトのキャッシュがクリアされたくない場合は、次のようにしてサイト定義にpreventHtmlCacheClear属性を追加できます:

    <site name="custom_website" cacheHtml="true" preventHtmlCacheClear="true" … />

パーソナライズとHTMLキャッシュ

!重要パーソナライズルールを使用するレンダリングでHTMLキャッシュを有効にしないでください。パーソナライズとHTMLキャッシュの組み合わせはSitecore XP 9.2以降ではサポートされていません。

レンダリングでHTMLキャッシュが有効になると、Sitecoreは最終的なレンダリングマークアップを保存し、その後のリクエストで再利用します。キャッシュされた出力が直接提供されるため、パーソナライズルールはリクエストごとに再評価されず、本番環境でのパーソナライズ動作が一貫性や誤った動作を引き起こします。

このトピックで説明するキャッシュオプションのいずれも、HTMLキャッシュをパーソナライズルールと互換性のあるものにはしません。これらのオプションの組み合わせをいずれかの組み合わせで設定しても、リクエストごとのパーソナライズ条件の評価は復元されません。

パーソナライズルールを使用するレンダリングについては、HTMLキャッシュを無効にすることを推奨します。同じレンダリングが複数のページで使用され、そのうち一部のページだけがパーソナライズを使っている場合、レンダリング定義レベルで全体的に無効にするのではなく、影響を受けたページでキャッシュを無効にできます。これにより、パーソナライズが適用されていないページでもレンダリングがキャッシュされたままにできます。

特定のレンダリングインスタンスのキャッシュを無効にするには、エクスペリエンスエディターでページを開き、レンダリングを選択し、レンダリング設定のキャッシュ 可能な チェックボックスをクリアしてください。

この記事を改善するための提案がある場合は、 お知らせください!