AEM에서 Externalizer는 프로그래밍 방식으로 리소스 경로(예: )를 변환할 수 있는 OSGI 서비스입니다./path/to/my/page
)를 미리 구성된 DNS로 경로를 접두사로 사용하여 외부 및 절대 URL(예: https://www.mycompany.com/path/to/my/page
)에 추가합니다.
인스턴스가 웹 레이어 뒤에서 실행 중인 경우 외부에서 볼 수 있는 URL을 알 수 없고, 경우에 따라 요청 범위 외부에서 링크를 만들어야 하기 때문에 이 서비스는 이러한 외부 URL을 구성하고 빌드할 수 있는 중앙 위치를 제공합니다.
이 페이지에서는 Externalizer 서비스를 구성하는 방법과 이 서비스를 사용하는 방법을 설명합니다. 자세한 내용은 Javadocs를 참조하십시오.
Externalizer 서비스를 사용하면 프로그래밍 방식으로 리소스 경로를 접두사로 지정하는 데 사용할 수 있는 여러 도메인을 중앙에서 정의할 수 있습니다. 각 도메인은 프로그래밍 방식으로 도메인을 참조하는 데 사용되는 고유한 이름으로 식별됩니다.
Externalizer 서비스에 대한 도메인 매핑을 정의하려면
도구를 통해 구성 관리자로 이동한 다음 웹 콘솔을 선택하거나 https://<host>:<port>/system/console/configMgr.
를 입력합니다
Day CQ Link Externalizer를 클릭하여 구성 대화 상자를 엽니다.
구성에 대한 직접 링크는 https://<host>:<port>/system/console/configMgr/com.day.cq.commons.impl.ExternalizerImpl
입니다.
도메인 매핑 정의:매핑은 코드 내에서 도메인, 공간 및 도메인을 참조하는 데 사용할 수 있는 고유한 이름으로 구성됩니다.
<unique-name> [scheme://]server[:port][/contextpath]
, 위치:
예를 들어,production https://my.production.instance
다음 매핑 이름은 사전 정의되어 있으며, AEM이 매핑 이름을 사용함에 따라 항상 설정되어야 합니다.
사용자 지정 구성을 사용하면 "프로덕션", "스테이징" 및 같은 새 카테고리 또는 "my-internal-webservice"와 같은 외부 비 AEM 시스템도 추가할 수 있으며, 이러한 URL을 프로젝트 코드 베이스의 여러 위치에서 하드코딩하지 않는 데 유용합니다.
저장을 클릭하여 변경 내용을 저장합니다.
Adobe은 구성을 저장소에 추가할 것을 권장합니다.
이 섹션에서는 Externalizer 서비스를 사용하는 방법에 대한 몇 가지 예를 보여줍니다.
JSP에서 Externalizer 서비스를 가져오려면 다음을 수행하십시오.
Externalizer externalizer = resourceResolver.adaptTo(Externalizer.class);
'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에서 더 많은 예를 찾을 수 있습니다.