パッチ ファイルを使用して Sitecore 設定をカスタマイズする

Current version: 10.1

パッチ ファイルを使用して、Sitecore.config ファイル内の構成設定を追加または変更できます。これらのパッチ ファイルが Sitecore.config ファイルとマージされて、実行時に使用される設定ファイルが作成されます。

このトピックでは、次の方法について説明します。

パッチ ファイルを作成する

構成設定をカスタマイズするためのパッチ ファイルを作成するには:

  1. Sitecore の次の 2 つのカスタマイズ可能なレイヤーのいずれかでファイルを作成します。

    • カスタム レイヤー – デフォルトの Sitecore 設定をシステム環境とは無関係にカスタマイズするパッチ ファイルは、/App_Config/Include フォルダーに配置する必要があります。これはカスタム レイヤーに属します。

    • 環境レイヤー – QA や開発などの特定の Sitecore 環境を設定するパッチ ファイルは、/App_Config/Environment フォルダーに配置する必要があります。これは環境レイヤーに属します。

    パッチ ファイルは、上記のフォルダーのルートまたは上記のフォルダー内に作成したサブフォルダーのいずれかに配置できます。

  2. パッチ ファイルのファイル名は自由ですが、拡張子は .config にします。

  3. まず次の基本構造をファイルに記述します。

    RequestResponse
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <sitecore>
    </sitecore>
    </configuration>
  4. パッチ ファイルの <sitecore> セクションに、構成に追加する設定変更を記述します。

    注記

    パッチは app_config/sitecore.config ファイル内の設定にのみ適用できます。web.configapp_config/layers.config などの他のファイル内の設定にパッチを適用することはできません。これらのファイルの設定を変更する場合は、個々のファイルを直接編集する必要があります。

ルールベースの設定を使用して、パッチ設定が適用される条件を制御します。

設定の適用方法を制御する

Sitecore では、パッチ ファイルから変更を適用する際、要素の名前とすべての属性の組み合わせを使用してパッチ ファイル内の各要素が既存の構成の要素と照合されます。一致する要素が見つかった場合は、その既存の要素が更新されます。一致する要素が見つからなかった場合は、新しい要素が挿入されます。

注記

パッチ ファイルの要素が既存の構成の複数の要素と一致する場合は、最初に見つかった要素に更新が適用されます。したがって、要素を一意に識別するために、十分多くの属性を指定することを強くお勧めします。

デフォルトでは、新しい要素は、その要素が属する構成セクションの最後に挿入されます。

要素の挿入方法を制御するには:

  1. patchset の XML 名前空間を登録し、属性を使用して設定の変更や追加ができるようにします。そのためには、これらの名前空間を次のように <configuration> 設定に追加します。

    RequestResponse
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" 
    xmlns:set="http://www.sitecore.net/xmlconfig/set/">
  2. patch: 属性を使用して、既存の要素に対する要素の相対的な配置場所、または同じ名前を持つ既存の要素を置換するか更新するかを指定します。以下の属性を使用できます。

    • patch:before – 指定された要素の前にこの要素を挿入します。

    • patch:after – 指定された要素の後にこの要素を挿入します。

    • patch:attribute – 要素の指定された属性を定義または置換します。set 名前空間を使用して、これと同じ結果を達成できます。

    • patch:delete – 指定された要素を削除します。

    • patch:instead – 指定された要素を置換します。

    たとえば、mysite という名前のサイトを追加し、それを website という既存のサイトの前に配置するには、次の構文を使用します。

    RequestResponse
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
      <sitecore>
        <sites>
          <site patch:before=”*[@name='website']” name=”mysite” ... />
        </sites>
      </sitecore>
    </configuration>
注記

Sitecore 設定の変更に役立つパッチ ファイルの例が用意されています。また、パッチ ファイルについて詳しく説明した「インクルード ファイルによるパッチ適用機能」ガイドもあります。このガイドの説明は主に Sitecore バージョン 6 に関連していることに注意してください。

設定ファイルの読み込み順序を制御する

あるファイルで加えられた変更が、後で読み込まれたファイルによって変更または上書きされる可能性があるため、設定ファイルの読み込み順序は重要です。複数のファイルで同じ構成設定が見つかった場合は、最後に読み込まれたファイルによってそれまでのバージョンの設定が上書きされます。

レイヤー内での設定ファイルの読み込み順序を制御するには:

  1. /App_config/layers.config ファイルで、<loadOrder> 設定をレイヤーの定義に追加します。

    RequestResponse
    <layer name="Custom" includeFolder="/App_Config/Custom/">
    <loadOrder>
    </loadOrder>
    </layer>
  2. <loadOrder> セクションに、ファイル フォルダーまたは個々のファイルを読み込み順に追加します。

    RequestResponse
    <loadOrder>
    <add path="Folder23" type="Folder" />
    <add path="Folder9/sitespecific.config" type="File" />
    <add path="Folder1" type="Folder" />
    </loadOrder>

パッチ適用時に <loadOrder> 設定に遭遇すると、設定ファイルが次の順に読み込まれます。

  1. まず、<loadOrder> セクションに指定されたフォルダーとファイルが記載された順に読み込まれます。前の例では、Folder23 フォルダー内のファイル、sitespecific.config ファイル、Folder1 内のファイルの順に読み込まれます。.

  2. 次に、<loadOrder> セクションに指定されていないフォルダーとファイルが読み込まれます。この読み込みはアルファベット順に行われます。フォルダーのルートに配置されたファイルのほうが、サブフォルダー内のファイルよりも先に読み込まれます。

注記

実行時に設定がどのようにコンパイルされるかは、設定表示ツールを使用して確認できます。設定表示ツールは、実際には設定を変更せずに設定ルールの変更や設定レイヤーの無効化をシミュレーションするためにも使用できます。

Do you have some feedback for us?

If you have suggestions for improving this article,