新しいリソースリゾルバー検索パスにより、テンプレートポリシーが破損する
スクリプトを使用してリソースリゾルバー検索パス /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' を削除するだけで、定義済みのポリシーが以前の作業状態に戻ります。
これを再現するには、次の手順を実行します。
-
特定のページテンプレートで、特定のコンポーネントに関連するポリシーを作成します。
-
選択したポリシーでテンプレートを保存します。
-
次を使用してスクリプトを追加:
code language-none resource.resolver.searchpath": "/apps/projname"... -
テンプレートおよび関連コンポーネントの定義済みポリシーが、「テンプレートを編集」のドロップダウンで選択できなくなったことを確認します。
解決策 resolution
ベストプラクティスとして、/apps と /libs を変更しないでください。 Sling は、最初に /apps で、次に /libs でコンポーネントを検索します。
Sling はこのリストを順に参照してリソースを検索します。 つまり、/apps の項目(パスの先頭で /libs を使用して指定しない限り)が最初に見つかります。 オーバーレイはこのように機能します。