URL の外部化

AEMの​Externalizer​は、リソースパス(例えば、/path/to/my/page)を外部URLと絶対URL(例えば、https://www.mycompany.com/path/to/my/page)に埋め込みます。

インスタンスがWebレイヤーの背後で実行されている場合、外部で表示されるURLを認識できないので、リクエスト範囲外でリンクを作成する必要が生じる場合があるので、このサービスを使用して、外部URLを設定して作成できます。

このページでは、Externalizer サービスの設定方法と使用方法について説明します。詳しくは、関連する Javadoc を参照してください。

Externalizer サービスの設定

Externalizer​サービスを使用すると、リソースパスにプログラム的にプレフィックスを付けるために使用できる複数のドメインを一元的に定義できます。各ドメインは、プログラムでドメインを参照する際に使用される一意の名前で識別されます。

Externalizer サービスのドメインマッピングを定義するには:

  1. ツール​から設定マネージャーに移動し、Webコンソール​を開くか、次のように入力します。

    https://<host>:<port>/system/console/configMgr

  2. Day CQ Link Externalizer​をクリックして、設定ダイアログボックスを開きます。

    メモ

    設定への直接リンクはhttps://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImplです。

    aem-externalizer-01

  3. ドメイン​マッピングを定義します。マッピングは、ドメイン、スペースおよびドメインを参照するコードで使用できる一意の名前で構成されます。

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

    ここで、

    • ​スキーマは通常、httpまたはhttpsですが、ftpなどの場合もあります。

      • 必要に応じて、httpsを使用してhttpsリンクを強制します。
      • URLの外部化を要求する際にクライアントコードがスキームを上書きしない場合に使用されます。
    • ​serverはホスト名です(ドメイン名またはipアドレスを使用できます)。

    • port (オプション)はポート番号です。

    • contextpath (オプション)は、AEMが別のコンテキストパスの下にwebアプリとしてインストールされている場合にのみ設定されます。

    例:production https://my.production.instance

    次のマッピング名は事前に定義されており、AEMがこれらを利用するため常に設定する必要があります。

    • local — ローカルインスタンス
    • author — オーサリングシステムのDNS
    • publish - 公開 Web サイトの DNS
    メモ

    カスタム設定を使用すると、productionstagingなどの新しいカテゴリや、my-internal-webserviceなどの外部のAEM以外のシステムを追加できます。 このようなURLを、プロジェクトのコードベースの異なる場所にハードコーディングするのを防ぐのに役立ちます。

  4. 保存」をクリックして変更を保存します。

メモ

Adobeでは、リポジトリに設定を追加することをお勧めします。

Externalizer サービスの使用

この節では、Externalizer​サービスの使用例をいくつか示します。

  1. JSP で Externalizer サービスを取得する:

    Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
    
  2. 「publish」ドメインを付与してパスを外部化する:

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

    ドメインマッピングが次のような場合:

    • publish https://www.website.com

    myExternalizedUrl 値で終わる

    • https://www.website.com/contextpath/my/page.html
  3. 「author」ドメインを付与してパスを外部化するには:

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

    ドメインマッピングが次のような場合:

    • author https://author.website.com

    myExternalizedUrl 値で終わる

    • https://author.website.com/contextpath/my/page.html
  4. 「local」ドメインを付与してパスを外部化するには:

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

    ドメインマッピングが次のような場合:

    • local https://publish-3.internal

    myExternalizedUrl 値で終わる

    • https://publish-3.internal/contextpath/my/page.html
  5. 他の例については、関連する Javadoc を参照してください。

このページ