URL 표면화

AEM에서 Externalizer​는 프로그래밍 방식으로 리소스 경로(예: )를 변환할 수 있는 OSGi 서비스입니다./path/to/my/page)를 미리 구성된 DNS로 경로를 접두사로 사용하여 외부 및 절대 URL(예: https://www.mycompany.com/path/to/my/page)에 추가합니다.

Cloud Service 인스턴스로서의 AEM은 외부에 표시되는 URL을 알 수 없으며, 경우에 따라 요청 범위 외부에서 링크를 만들어야 하기 때문에 이 서비스는 이러한 외부 URL을 구성하고 빌드하기 위한 중앙 위치를 제공합니다.

이 문서에서는 Externalizer 서비스를 구성하는 방법 및 이를 사용하는 방법에 대해 설명합니다. 서비스에 대한 자세한 내용은 Javadocs를 참조하십시오.

Externalizer의 기본 동작 및 How to Override

기본적으로 Externalizer 서비스에는 author-p12345-e6789.adobeaemcloud.compublish-p12345-e6789.adobeaemcloud.com 등의 값이 있습니다.

이러한 값을 무시하려면 문서 AEM에 대한 OSGi 구성에 설명된 대로 Cloud Manager 환경 변수를 사용하고, 사전 정의된 AEM_CDN_DOMAIN_AUTHORAEM_CDN_DOMAIN_PUBLISH 변수를 설정합니다.

외부자 서비스 구성

Externalizer 서비스를 사용하면 프로그래밍 방식으로 리소스 경로를 접두사로 추가하는 데 사용할 수 있는 도메인을 중앙에서 정의할 수 있습니다. Externalizer 서비스는 단일 도메인이 있는 응용 프로그램에만 사용해야 합니다.

노트

AEM에 대한 OSGi 구성을 Cloud Service으로 적용할 때와 같이,은(는) 로컬 개발자 인스턴스에서 수행한 다음, 프로젝트 코드에 배포용 커밋해야 합니다.

Externalizer 서비스에 대한 도메인 매핑을 정의하려면

  1. 다음을 통해 구성 관리자로 이동합니다.

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

  2. Day CQ Link Externalizer​를 클릭하여 구성 대화 상자를 엽니다.

    Externalizer OSGi 구성

    노트

    구성에 대한 직접 링크는 https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl입니다.

  3. 도메인 매핑을 정의합니다. 매핑은 코드에서 도메인, 공간 및 도메인을 참조하는 데 사용할 수 있는 고유한 이름으로 구성됩니다.

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

    위치:

    • scheme 는 일반적으로 http 또는 https이지만 다른 프로토콜일 수 있습니다.

      • https 링크를 적용하려면 https를 사용하는 것이 좋습니다.
      • URL의 외부화를 요청할 때 클라이언트 코드가 스키마를 재정의하지 않는 경우 사용됩니다.
    • server 호스트 이름(도메인 이름 또는 ip 주소)입니다.

    • port (선택 사항)은 포트 번호입니다.

    • contextpath (선택 사항) AEM이 다른 컨텍스트 경로 아래에 웹 앱으로 설치된 경우에만 설정됩니다.

    예를 들어,production https://my.production.instance

    다음 매핑 이름은 사전 정의되어 있으며, AEM이 매핑 이름을 사용함에 따라 항상 설정되어야 합니다.

    • local - 로컬 인스턴스
    • author - 작성 시스템 DNS
    • publish - 공개 웹 사이트 DNS
    노트

    사용자 지정 구성을 사용하면 production, staging 등의 새 카테고리 또는 my-internal-webservice 등의 외부 비 AEM 시스템도 추가할 수 있습니다. 프로젝트 코드 베이스의 서로 다른 위치에서 이러한 URL을 하드 코딩하지 않도록 하는 것이 유용합니다.

  4. 저장​을 클릭하여 변경 내용을 저장합니다.

Externalizer 서비스 사용

이 섹션에서는 Externalizer 서비스를 사용할 수 있는 방법에 대한 몇 가지 예를 보여줍니다.

노트

HTML 컨텍스트에서는 절대 링크를 만들 수 없습니다. 따라서 이러한 경우에는 이 유틸리티를 사용하지 않아야 합니다.

  • 'publish' 도메인으로 경로를 구체화하려면

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

    도메인 매핑이 다음과 같다고 가정합니다.

    • publish https://www.website.com

    • myExternalizedUrl 다음으로 끝남 값:

    • https://www.website.com/contextpath/my/page.html

  • 'author' 도메인으로 경로를 표면화하려면

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

    도메인 매핑이 다음과 같다고 가정합니다.

    • author https://author.website.com

    • myExternalizedUrl 다음으로 끝남 값:

    • https://author.website.com/contextpath/my/page.html

  • '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

Javadocs에서 더 많은 예를 찾을 수 있습니다.

이 페이지에서는