Esternalizzazione degli URL externalizing-urls
In AEM, il Esternalizzatore è un servizio OSGI che consente di trasformare programmaticamente un percorso di risorsa (ad es. /path/to/my/page
) in un URL esterno e assoluto (ad esempio, https://www.mycompany.com/path/to/my/page
) prefissando il percorso con un DNS preconfigurato.
Poiché un’istanza non può conoscere il suo URL visibile esternamente se è in esecuzione dietro un livello web e poiché a volte un collegamento deve essere creato al di fuori dell’ambito della richiesta, questo servizio fornisce una posizione centrale per configurare tali URL esterni e generarli.
Questa pagina spiega come configurare il Esternalizzatore e come usarlo. Per ulteriori informazioni, consulta la Javadocs.
Configurazione del servizio Externalizer configuring-the-externalizer-service
La Esternalizzatore il servizio ti consente di definire centralmente più domini che possono essere utilizzati per prefisso programmaticamente i percorsi delle risorse. Ogni dominio è identificato da un nome univoco utilizzato per fare riferimento programmaticamente al dominio.
Per definire una mappatura del dominio per Esternalizzatore servizio:
-
Passa alla gestione della configurazione tramite Strumenti, quindi Console web o immetti
https://<host>:<port>/system/console/configMgr.
-
Fai clic su Day CQ Link Externalizer per aprire la finestra di dialogo di configurazione.
note note NOTE Il collegamento diretto alla configurazione è https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
-
Definire una mappatura del dominio: una mappatura consiste in un nome univoco che può essere utilizzato nel codice per fare riferimento al dominio, a uno spazio e al dominio:
<unique-name> [scheme://]server[:port][/contextpath]
, Dove:- schema di solito è http o https, ma può anche essere ftp ecc.; utilizza https per applicare i collegamenti https, se necessario; viene utilizzato se il codice client non sostituisce lo schema quando si richiede l’esternalizzazione di un URL.
- server è il nome host (può essere un nome di dominio o un indirizzo ip).
- porta (facoltativo) è il numero di porta.
- contextpath (facoltativo) è impostato solo se AEM è installato come applicazione web in un percorso contestuale diverso.
Esempio:
production https://my.production.instance
I seguenti nomi di mappatura sono predefiniti e devono sempre essere impostati in base a AEM:
- locale - l'istanza locale
- autore - DNS del sistema di authoring
- pubblicare - DNS del sito web pubblico
note note NOTE Una configurazione personalizzata consente di aggiungere una nuova categoria, ad esempio "produzione", "staging" o anche sistemi esterni non AEM come "my-internal-webservice" ed è utile per evitare la codifica fissa di tali URL in diverse posizioni nella base di codice di un progetto. -
Fai clic su Salva per salvare le modifiche.
Utilizzo del servizio Externalizer using-the-externalizer-service
Questa sezione mostra alcuni esempi di come Esternalizzatore può essere utilizzato.
Per ottenere il servizio Externalizer in un JSP:
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
Per esternalizzare un percorso con il dominio "pubblica":
String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
Supponendo la mappatura del dominio " publish https://www.website.com
", myExternalizedUrl termina con il valore " https://www.website.com/contextpath/my/page.html
".
Per esternalizzare un percorso con il dominio "author":
String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
Supponendo la mappatura del dominio " author https://author.website.com
", myExternalizedUrl termina con il valore " https://author.website.com/contextpath/my/page.html
".
Per esternalizzare un percorso con il dominio "locale":
String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
Supponendo la mappatura del dominio " local https://publish-3.internal
", myExternalizedUrl termina con il valore " https://publish-3.internal/contextpath/my/page.html
".
Puoi trovare ulteriori esempi nella sezione Javadocs.