URL's extern maken

In AEM, is ExternalAlizer de dienst OSGI die u toestaat om een middelweg programmatically om te zetten (b.v. /path/to/my/page) in een externe en absolute URL (bijvoorbeeld https://www.mycompany.com/path/to/my/page) door de weg met vooraf gevormde DNS te bevestigen.

Omdat een instantie zijn uiterlijk zichtbare URL niet kan kennen als het achter een Weblaag loopt, en omdat soms een verbinding buiten het verzoekwerkingsgebied moet worden gecreeerd, verstrekt deze dienst een centrale plaats om die externe URLs te vormen en hen te bouwen.

Deze pagina verklaart hoe te om de Externalzer dienst te vormen en hoe te om het te gebruiken. Raadpleeg Javadocs voor meer informatie.

De service ExternalAlizer configureren

Met de service ExternalAlizer kunt u meerdere domeinen centraal definiëren die kunnen worden gebruikt om programmatisch een voorvoegsel voor bronnenpaden toe te voegen. Elk domein wordt geïdentificeerd door een unieke naam die wordt gebruikt om programmatically naar het domein te verwijzen.

Een domeinafbeelding definiëren voor de service Externalalizer:

  1. Navigeer naar de configuratiemanager via Tools, dan Webconsole, of ga https://<host>:<port>/system/console/configMgr. in

  2. Klik De Verbinding van CQ van de Dag uiterlijk om de doos van de configuratiedialoog te openen.

    OPMERKING

    De directe verbinding aan de configuratie is https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl

    chlimage_1-44

  3. Een domeintoewijzing definiëren: een toewijzing bestaat uit een unieke naam die in de code kan worden gebruikt om naar het domein, een ruimte en het domein te verwijzen:

    <unique-name> [scheme://]server[:port][/contextpath], waarbij:

    • De schema's zijn gewoonlijk http of https, maar kunnen ook ftp etc. zijn.; gebruik https om https-koppelingen af te dwingen, indien gewenst; wordt gebruikt als de clientcode het schema niet overschrijft wanneer wordt gevraagd om externalisatie van een URL.
    • De server is de hostnaam (kan een domeinnaam of een ip-adres zijn).
    • port (optioneel) is het poortnummer.
    • contextpath (optioneel) wordt alleen ingesteld als AEM is geïnstalleerd als een webapp onder een ander contextpad.

    Bijvoorbeeld: production https://my.production.instance

    De volgende toewijzingsnamen zijn vooraf gedefinieerd en moeten altijd worden ingesteld op basis van AEM:

    • lokaal - de lokale instantie
    • auteur - het auteurssysteem DNS
    • publiceer - het publiek onder ogen ziet website DNS
    OPMERKING

    Met een aangepaste configuratie kunt u een nieuwe categorie toevoegen, zoals "productie", "staging" of zelfs externe niet-AEM systemen, zoals "mijn-interne webservice". Dit is handig om hardcodering van dergelijke URL's op verschillende plaatsen in de codebase van een project te voorkomen.

  4. Klik Opslaan om uw wijzigingen op te slaan.

OPMERKING

De service ExternalAlizer gebruiken

Deze sectie toont een paar voorbeelden van hoe de Externalzer dienst kan worden gebruikt.

Om de dienst Externalzer in JSP te krijgen:

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

Een pad extern maken met het domein 'publish':

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

Ervan uitgaande dat de domeintoewijzing " publish https://www.website.com", mijnExternalUrl eindigt met de waarde " https://www.website.com/contextpath/my/page.html".

Een pad extern maken met het domein 'auteur':

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

Ervan uitgaande dat de domeintoewijzing " author https://author.website.com", mijnExternalUrl eindigt met de waarde " https://author.website.com/contextpath/my/page.html".

Een pad extern maken met het 'lokale' domein:

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

Ervan uitgaande dat de domeintoewijzing " local https://publish-3.internal", mijnExternalUrl eindigt met de waarde " https://publish-3.internal/contextpath/my/page.html".

U kunt meer voorbeelden in Javadocs vinden.

Op deze pagina