In AEM Externalizer ist 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
), 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.
Die Externalizer -Dienst ermöglicht es Ihnen, zentral mehrere Domänen zu 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:
Navigieren Sie zum Konfigurationsmanager über Instrumente, dann Web-Konsole oder geben Sie https://<host>:<port>/system/console/configMgr.
Klicken Sie auf Day CQ Link Externalizer, um das Konfigurationsdialogfeld zu öffnen.
Der Direkt-Link zur Konfiguration lautet https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
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]
, Hierbei gilt:
Beispiel: production https://my.production.instance
Die folgenden Zuordnungsnamen sind vordefiniert und müssen immer festgelegt werden, da AEM auf sie angewiesen ist:
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.
Klicken Sie auf Speichern, um Ihre Änderungen zu speichern.
Adobe empfiehlt, dass Sie die Konfiguration zum Repository hinzufügen.
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-Domain externalisieren Sie wie folgt:
String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
Angenommen, die Domänenzuordnung " publish https://www.website.com
", endet myExternalizedUrl mit dem Wert " https://www.website.com/contextpath/my/page.html
".
So externalisieren Sie einen Pfad mit der Domain „author“:
String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
Angenommen, die Domänenzuordnung " author https://author.website.com
", endet myExternalizedUrl mit dem Wert " https://author.website.com/contextpath/my/page.html
".
So externalisieren Sie einen Pfad mit der Domain „local“:
String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
Angenommen, die Domänenzuordnung " local https://publish-3.internal
", endet myExternalizedUrl mit dem Wert " https://publish-3.internal/contextpath/my/page.html
".
Weitere Beispiele finden Sie in den Javadocs.