Ny resurslösare, sökvägsåterbrytningsmallprinciper
Om du lägger till en resursmatchande söksökväg /apps/proj1 via skript avbryts alla principer som angetts i /conf/proj1/settings/wcm/policies. Om du däremot tar bort raden /apps/proj1 från skriptet cfg.json återställs profilerna till det tidigare funktionstillståndet. Följ instruktionerna i artikeln för att åtgärda problemet.
Beskrivning description
Miljö
Adobe Experience Manager 6.5
Problem/symtom
Lägg till en resursmatcharsökväg ("/apps/proj1") via skript:
org.apache.sling.jcr.resource.internal.JcrResourceResolverFactoryImpl.cfg.json
{
"resource.resolver.searchpath":
"/apps/proj1",
"/apps",
"/libs"
}
Detta bryter alla principer som definierats i /conf/proj1/settings/wcm/policies
Det finns definitioner i policies.xml, men det är omöjligt att relatera dem till redigerbara sidmallar, och alla tidigare principval i mallar är brutna. Det är bara om raden '/apps/proj1' tas bort från skriptet cfg.json som de definierade profilerna återgår till det tidigare arbetstillståndet.
Du kan reproducera detta på följande sätt:
-
Skapa profiler som är relaterade till en viss komponent på en viss sidmall.
-
Spara mallen med den valda profilen.
-
Lägg till skript med:
code language-none resource.resolver.searchpath": "/apps/projname"... -
Bekräfta att den definierade principen för mallen och den relaterade komponenten inte längre kan väljas i listrutan i redigeringsmallen.
Upplösning resolution
Som bästa praxis bör du undvika att ändra /apps och /libs. Sling söker efter komponenter först i /apps och sedan /libs.
Sling söker efter resurser genom att gå igenom den här listan i ordning. Det innebär att objekt i /appar (om de inte anges med /libs i början av sökvägen) hittas först. Det är så här övertäckningen fungerar.