Show Menu
トピック×

URL の外部化

In AEM, the Externalizer is an OSGI service that allows you to programmatically transform a resource path (e.g. /path/to/my/page ) into an external and absolute URL (for example, https://www.mycompany.com/path/to/my/page ) by prefixing the path with a pre-configured DNS.
インスタンスが Web レイヤーの背後で実行されている場合、自身の外部向け URL がわかりません。また、リンクをリクエストスコープの範囲外で作成する必要がある場合があります。これらの理由で、このサービスは、そのような外部 URL を設定して組み立てるための一元化された場所を提供します。
このページでは、 Externalizer サービスの設定方法と使用方法について説明します。詳しくは、関連する Javadoc を参照してください。

Externalizer サービスの設定

The Externalizer service allows you to centrally define multiple domains that can be used to programmatically prefix resource paths. Each domain is identified by a unique name that is used to programmatically reference the domain.
Externalizer サービスのドメインマッピングを定義するには:
  1. Navigate to the configuration manager via Tools , then Web Console , or enter https://<host>:<port>/system/console/configMgr.
  2. Click Day CQ Link Externalizer to open the configuration dialog box.
    The direct link to the configuration is https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
  3. ドメインマッピングの定義:マッピングは、ドメイン、スペースおよびドメインを参照するためにコードで使用できる一意の名前で構成されます。
    <unique-name> [scheme://]server[:port][/contextpath] , 条件:
    • schemeは 、通常httpまたはhttpsですが、ftpなども使用できます。必要に応じてhttpsを使用し、httpsリンクを強制します。URLの外部化を要求する際に、クライアントコードがスキームを上書きしない場合に使用されます。
    • serverは 、ホスト名(ドメイン名またはIPアドレス)です。
    • port (オプション)はポート番号です。
    • contextpath (オプション)は、AEMがWebアプリケーションとして別のコンテキストパスの下にインストールされている場合にのみ設定されます。 次に例を示します。 production https://my.production.instance
    次のマッピング名は事前に定義されており、AEMが依存するために常に設定する必要があります。
    • local — ローカルインスタンス
    • author — オーサリングシステムのDNS
    • publish — 公開されるWebサイトのDNS
    カスタム設定によって、「production」、「staging」などの新しいカテゴリや、「my-internal-webservice」などの AEM 以外の外部システムでも追加できます。このような設定は、プロジェクトのコードベースの様々な場所でそのような URL をハードコーディングするのを避けるために有効です。
  4. Save 」をクリックして変更を保存します。
Adobe recommends that you add the configuration to the repository .

Externalizer サービスの使用

ここでは、 Externalizer サービスの使用方法に関するいくつかの例を紹介します。
JSP で Externalizer サービスを取得する:
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
「publish」ドメインを付与してパスを外部化する:
String myExternalizedUrl = externalizer.publishLink(resolver, "/my/page") + ".html";
Assuming the domain mapping " publish https://www.website.com ", myExternalizedUrl ends up with the value " https://www.website.com/contextpath/my/page.html ".
「author」ドメインを付与してパスを外部化するには:
String myExternalizedUrl = externalizer.authorLink(resolver, "/my/page") + ".html";
Assuming the domain mapping " author https://author.website.com ", myExternalizedUrl ends up with the value " https://author.website.com/contextpath/my/page.html ".
「local」ドメインを付与してパスを外部化するには:
String myExternalizedUrl = externalizer.externalLink(resolver, Externalizer.LOCAL, "/my/page") + ".html";
Assuming the domain mapping " local https://publish-3.internal ", myExternalizedUrl ends up with the value " https://publish-3.internal/contextpath/my/page.html ".
他の例については、関連する Javadoc を参照してください。