ルールベースの設定を使用する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
パッチ ファイルを使用してSitecore設定をカスタマイズする場合、ルールベースのロジックを使用して、特定の設定が適用される条件を指定できます。
ルールベースの構成では、web.configファイルに設定されているルール定義を使用します。Sitecoreには、インスタンスが実行するSitecoreロールを決定する roleと、Sitecoreが最適化する検索プロバイダーを決定するsearchの2つの事前定義されたルール定義が付属しています。また、独自のカスタムルール定義を追加することもできます。
このトピックでは、次の方法について説明します。
構成設定をルールに依存させる
構成設定をルールに依存させる
構成設定をルールに依存させるには:
-
ルールがweb.configファイルで定義されていることを確認します。 これは、事前定義ルール または カスタム・ルールにすることができます。
-
実装する構成設定を含む パッチ ファイル を作成します。
-
パッチ・ファイル内の <configuration> ステートメントにxmlns:rulename="http://www.sitecore.net/xmlconfig/rulename/" 形式のステートメントを追加して、ルールの名前空間を登録します。
メモ事前定義ルール定義 ロール を使用してパッチ・ファイル を検索する 場合は、それらのネームスペースも登録する必要があります。
たとえば、次の例では、localenvというルール定義の名前空間を追加します。
-
1つの設定をルールの値に依存させるには、設定を定義するステートメントに構文rulename:require=testvalueのテストを追加します。
たとえば、次のようにSearch.ClassicSearch.MaxResultsを6に設定します ( localenvに の値QAが含まれている場合
-
パッチ・ファイル内のすべての設定をルールの値に依存させるには、シンタックスrulename:require=testvalueを使用してテストをパッチ・ファイルの<sitecore>ステートメントに追加します。たとえば、<sitecore> ステートメントに含まれるすべての設定が適用されます (localenvに値が含まれている場合QA
localenvに複数の値が含まれている場合、localenv:require="QA" ステートメントは、値の1つがQAである限りtrueです。ステートメントは、ルール定義に含まれるすべての値と一致する必要はありません。
テストには複数のテスト値を含めることができ、演算子and、orおよび ! (not) を使用できます。次の表に、有効なルール テストの例を示します。
|
|
|---|---|
|
localenv:require="QA" |
localenvにQAが含まれている場合、この設定が適用されます。 |
|
localenv:require="!QA" |
localenvにQAが含まれていない場合、この設定が適用されます。 |
|
localenv:require="QA or Test" |
この設定はlocalenvQAまたはTest、あるいはその両方にが含まれている場合に適用されます。 |
|
localenv:require="QA and Test" |
この設定は、localenvQAとTestの両方が含まれている場合に適用されます。 |
|
localenv:require="QA and !Test" |
この設定は、localenvQAが含まれているがTestが含まれていない場合に適用されます。たとえば、localenvがQA,Productionの場合は適用されますが、QA,Testの場合は適用されません。 |
|
localenv:require="(QA or Production) and !Test" |
この設定はlocalenvQAまたはProductionが含まれているが、Testが含まれていない場合に適用されます。たとえば、localenvがQA,Developmentの場合は適用されますが、QA,Testの場合は適用されません。 |
同じ設定に対して2つ以上のルールを使用する
同じ設定に対して2つ以上のルールを使用する
複数のルールのテストを同じ構成設定に追加できます。
同じ設定に対して2つ以上のルールを使用するには:
-
個々の設定のステートメントまたは <sitecore> ステートメントに必要なすべてのテストを追加します。Sitecoreは、すべてのテストに合格した場合に設定を適用します。
次の例では、Sitecoreは、localenvに値QAが含まれ、roleに値ContentManagementまたはContentDeliveryの値が含まれている場合に設定を適用します。設定を適用するには、両方のテストに合格する必要があります。
テストは常にandを使用して連結されます。同じステートメントで複数のテストを連結する場合、or or notは使用できません。個々のテスト内では、引き続きand、or、およびnotを使用できます。たとえば、次のステートメントは有効です。
設定の表示ツールを使用すると、Sitecoreが実行時にコンパイルしたときの設定を確認できます。また、Show Config ツールを使用して、実際に構成を変更せずに、構成ルールの変更や構成レイヤーの無効化をシミュレートすることもできます。