Extern URL externalizing-urls
AEM Externalizer är en OSGI-tjänst som gör att du kan omforma en resurssökväg programmatiskt (t.ex. /path/to/my/page
) till en extern och absolut URL (till exempel https://www.mycompany.com/path/to/my/page
) genom att ange sökvägen som prefix med en förkonfigurerad DNS.
Eftersom en instans inte känner till sin externt synliga URL-adress om den körs bakom ett webblager, och eftersom en länk ibland måste skapas utanför det begärda omfånget, utgör den här tjänsten en central plats för att konfigurera dessa externa URL-adresser och skapa dem.
På den här sidan beskrivs hur du konfigurerar Externalizer och hur du använder den. Mer information finns i Javadocs.
Konfigurera tjänsten Externalizer configuring-the-externalizer-service
The Externalizer kan du centralt definiera flera domäner som kan användas för att programmässigt prefix för resurssökvägar. Varje domän identifieras med ett unikt namn som används för att programmässigt referera till domänen.
Definiera en domänmappning för Externalizer tjänst:
-
Navigera till konfigurationshanteraren via verktyg sedan Webbkonsol eller ange
https://<host>:<port>/system/console/configMgr.
-
Klicka Day CQ Link Externalizer för att öppna konfigurationsdialogrutan.
note note NOTE Den direkta länken till konfigurationen är https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
-
Definiera en domänmappning: en mappning består av ett unikt namn som kan användas i koden för att referera till domänen, ett blanksteg och domänen:
<unique-name> [scheme://]server[:port][/contextpath]
, där:- system är vanligtvis http eller https, men kan också vara ftp o.s.v.; använda https för att framtvinga https-länkar om det behövs; den kommer att användas om klientkoden inte åsidosätter schemat när en URL-adress begärs externt.
- server är värdnamnet (kan vara ett domännamn eller en IP-adress).
- port (valfritt) är portnumret.
- kontextbana (valfritt) anges bara om AEM har installerats som ett webbprogram under en annan kontextsökväg.
Till exempel:
production https://my.production.instance
Följande mappningsnamn är fördefinierade och måste alltid anges som AEM är beroende av dem:
- lokal - den lokala instansen
- författare - redigeringssystemets DNS
- publicera - den offentliga webbplatsens DNS
note note NOTE Med en anpassad konfiguration kan du lägga till en ny kategori, till exempel"produktion","staging" eller till och med externa icke-AEM system som"my-internal-webservice". Den är användbar för att undvika hårdkodning av sådana URL:er på olika platser i ett projekts kodbas. -
Klicka Spara för att spara ändringarna.
Använda tjänsten Externalizer using-the-externalizer-service
I det här avsnittet visas några exempel på hur Externalizer kan användas.
Så här hämtar du tjänsten Externalizer i en JSP:
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
Så här gör du en extern sökväg med domänen 'publish':
String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
Anta domänmappningen publish https://www.website.com
", myExternalizedUrl avslutas med värdet " https://www.website.com/contextpath/my/page.html
".
Så här gör du en extern sökväg med domänen 'författare':
String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
Anta domänmappningen author https://author.website.com
", myExternalizedUrl avslutas med värdet " https://author.website.com/contextpath/my/page.html
".
Så här externaliserar du en sökväg med domänen"local":
String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
Anta domänmappningen local https://publish-3.internal
", myExternalizedUrl avslutas med värdet " https://publish-3.internal/contextpath/my/page.html
".
Du hittar fler exempel i Javadocs.