Externalisieren von URLs

In AEM ist der Externalizer ein OSGi-Dienst, mit dem Sie einen Ressourcenpfad (z. B. /path/to/my/page) in eine externe und absolute URL (z. B. https://www.mycompany.com/path/to/my/page) hinein, indem dem Pfad ein vorkonfiguriertes DNS vorangestellt wird.

Dieser Dienst bietet einen zentralen Ort für die Konfiguration und Erstellung von externen URLs, weil eine Instanz ihre extern sichtbare URL nicht kennen kann, wenn sie hinter einer Web-Layer läuft, und weil manchmal ein Link außerhalb des Anfrageumfangs erstellt werden muss.

Auf dieser Seite wird beschrieben, wie Sie den Externalizer-Dienst konfigurieren und verwenden. Weitere Informationen finden Sie in den Javadocs.

Konfigurieren des Externalizer-Diensts

Mit dem Dienst Externalizer können Sie zentral mehrere Domänen definieren, die zum programmatischen Präfix von Ressourcenpfaden verwendet werden können. Alle Domänen werden anhand eines eindeutigen Namens zum programmgesteuerten Verweisen auf die Domäne identifiziert.

Definieren Sie eine Domänenzuordnung für den Externalizer-Service wie folgt:

  1. Navigieren Sie zum Konfigurationsmanager über Tools, dann Web Console oder geben Sie https://<host>:<port>/system/console/configMgr. ein.

  2. Klicken Sie auf Day CQ Link Externalizer , um das Konfigurationsdialogfeld zu öffnen.

    HINWEIS

    Der direkte Link zur Konfiguration ist https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl

    chlimage_1-44

  3. Definieren Sie eine Domänenzuordnung: Eine Zuordnung besteht aus einem eindeutigen Namen, der im Code verwendet werden kann, um auf die Domäne, ein Leerzeichen und die Domäne zu verweisen:

    <unique-name> [scheme://]server[:port][/contextpath], wohin gehört:

    • ​-Schemata sind normalerweise http oder https, können aber auch ftp usw. sein.Verwenden Sie https, um https-Verknüpfungen zu erzwingen, falls gewünscht. Es wird verwendet, wenn der Clientcode das Schema beim Anfordern der Externalisierung einer URL nicht außer Kraft setzt.
    • ​server ist der Hostname (kann ein Domänenname oder eine IP-Adresse sein).
    • port (optional) ist die Portnummer.
    • contextpath (optional) wird nur festgelegt, wenn AEM als Web-App unter einem anderen Kontextpfad installiert ist.

    Beispiel: production https://my.production.instance

    Die folgenden Zuordnungsnamen sind vordefiniert und müssen immer festgelegt werden, da sie von AEM abhängen:

    • local - die lokale Instanz
    • author - das DNS des Authoring-Systems
    • publish - das DNS der öffentlichen Website
    HINWEIS

    Eine benutzerdefinierte Konfiguration ermöglicht es Ihnen, eine neue Kategorie hinzuzufügen, z. B. „Produktion“, „Staging“ oder auch externe Nicht-AEM-Systeme, z. B. „mein-interner-Webdienst“. Auch ermöglicht sie es Ihnen, das Hartkodieren solcher URLs an verschiedenen Orten in einer Projektdatenbank zu vermeiden.

  4. Klicken Sie auf Speichern, um Ihre Änderungen zu speichern.

HINWEIS

Adobe empfiehlt, die Konfiguration zum Repository hinzuzufügen.

Verwenden des Externalizer-Diensts

Dieser Abschnitt zeigt einige Beispiele dafür, wie der Externalizer-Dienst verwendet werden kann.

Den Externalizer-Dienst rufen Sie in JSP wie folgt ab:

Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);

Einen Pfad mit der publish-Domäne externalisieren Sie wie folgt:

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

Unter der Voraussetzung der Domänenzuordnung " publish https://www.website.com"erhält myExternalizedUrl den Wert " https://www.website.com/contextpath/my/page.html".

Einen Pfad mit der author-Domäne externalisieren Sie wie folgt:

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

Unter der Voraussetzung der Domänenzuordnung " author https://author.website.com"erhält myExternalizedUrl den Wert " https://author.website.com/contextpath/my/page.html".

Einen Pfad mit der local-Domäne externalisieren Sie wie folgt:

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

Unter der Voraussetzung der Domänenzuordnung " local https://publish-3.internal"erhält myExternalizedUrl den Wert " https://publish-3.internal/contextpath/my/page.html".

Weitere Beispiele finden Sie in den Javadocs.

Auf dieser Seite