Extern URL externalizing-urls

I Adobe Experience Manager (AEM) Externalizer är en OSGI-tjänst som gör att du programmässigt kan omvandla en resurssökväg (till exempel /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 de externa URL-adresserna 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:

  1. Navigera till konfigurationshanteraren via verktyg sedan Webbkonsol eller ange:

    https://<host>:<port>/system/console/configMgr

  2. 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

    aem-externalizer-01

  3. Definiera en Domäner mappning: 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]

    Var:

    • system är http eller https, men kan även vara ftp och så vidare.

      • använd https för att framtvinga https-länkar, om det behövs
      • den används om klientkoden inte åsidosätter schemat när den frågar efter en URL-adress.
    • 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 anges eftersom AEM är beroende av dem:

    • local - den lokala instansen
    • author - redigeringssystemets DNS
    • publish - den offentliga webbplatsens DNS
    note note
    NOTE
    Med en anpassad konfiguration kan du lägga till en kategori, till exempel production, stagingeller till och med externa icke-AEM system som my-internal-webservice. Det är praktiskt att undvika hårdkodning av sådana URL:er på olika platser i ett projekts kodbas.
  4. Klicka Spara för att spara ändringarna.

NOTE
Adobe rekommenderar att du lägg till konfigurationen i databasen.

Använda tjänsten Externalizer using-the-externalizer-service

I det här avsnittet visas några exempel på hur Externalizer kan användas:

  1. Så här hämtar du tjänsten Externalizer i en JSP:

    code language-java
    Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
    
  2. Så här gör du en extern sökväg med domänen 'publish':

    code language-java
    String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
    

    Anta domänmappningen:

    • publish https://www.website.com

    myExternalizedUrl slutar med värdet:

    • https://www.website.com/contextpath/my/page.html
  3. Så här gör du en extern sökväg med domänen 'författare':

    code language-java
    String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
    

    Anta domänmappningen:

    • author https://author.website.com

    myExternalizedUrl slutar med värdet:

    • https://author.website.com/contextpath/my/page.html
  4. Så här externaliserar du en sökväg med domänen"local":

    code language-java
    String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
    

    Anta domänmappningen:

    • local https://publish-3.internal

    myExternalizedUrl slutar med värdet:

    • https://publish-3.internal/contextpath/my/page.html
  5. Du hittar fler exempel i Javadocs.

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2