新しいリソースリゾルバー検索パスにより、テンプレートポリシーが破損する

スクリプトを使用してリソースリゾルバー検索パス /apps/proj1 を追加すると、/conf/proj1/settings/wcm/policies で設定したすべてのポリシーが中断します。 逆に、cfg.json スクリプトから /apps/proj1 行を削除すると、ポリシーは以前の機能状態に戻ります。 この問題を修正するには、記事の指示に従ってください。

説明 description

環境

Adobe Experience Manager 6.5

問題/症状

スクリプトを使用して、リソースリゾルバー検索パス ("/apps/proj1") を追加します。

org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.cfg.json

{

"resource.resolver.searchpath":

"/apps/proj1",

"/apps",

"/libs"

}

これにより、/conf/proj1/settings/wcm/policies で定義されているすべてのポリシーが破損します

policies.xml には定義が存在しますが、編集可能なページテンプレートに定義を関連付けることはできません。また、テンプレート内の以前のポリシー選択はすべて壊れます。 cfg.json スクリプトから行 '/apps/proj1' を削除するだけで、定義済みのポリシーが以前の作業状態に戻ります。

これを再現するには、次の手順を実行します。

  1. 特定のページテンプレートで、特定のコンポーネントに関連するポリシーを作成します。

  2. 選択したポリシーでテンプレートを保存します。

  3. 次を使用してスクリプトを追加:

    code language-none
    resource.resolver.searchpath":
    
            "/apps/projname"...
    
  4. テンプレートおよび関連コンポーネントの定義済みポリシーが、「テンプレートを編集」のドロップダウンで選択できなくなったことを確認します。

解決策 resolution

ベストプラクティスとして、/apps/libs を変更しないでください。 Sling は、最初に /apps で、次に /libs でコンポーネントを検索します。

Sling はこのリストを順に参照してリソースを検索します。 つまり、/apps の項目(パスの先頭で /libs を使用して指定しない限り)が最初に見つかります。 オーバーレイはこのように機能します。

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f