클라이언트측 렌더링 구성 요소를 사용한 ESI 개인화 캐싱을 위한 AEM 솔루션
ESI(Edge Side Includes)를 서버에서 렌더링된 HTML 조각으로 반환되지 않고 클라이언트에서 렌더링되는 구성 요소와 함께 사용할 경우 개인화된 콘텐츠가 예상대로 작동하지 않을 수 있습니다. ESI 사용 사례에 대해 서버에서 렌더링된 조각 엔드포인트에 맞게 구현을 조정하거나 클라이언트가 렌더링된 상태로 남아 있는 구성 요소에 클라이언트측 접근 방식을 사용하면 문제를 해결하는 데 도움이 될 수 있습니다.
설명 description
환경
Adobe Experience Manager as a Cloud Service
문제/증상
- Adobe Experience Manager as a Cloud Service 게시 페이지에서 개인화된 콘텐츠에 대한 ESI를 구현하면 예기치 않은 캐싱 동작이 표시될 수 있습니다.
- 익명 사용자가 공개 페이지에 대한 캐시를 웜하는 경우, 인증된 사용자는 나중에 개인화된 구성 요소의 익명 버전을 볼 수 있고 그 반대의 경우가 발생할 수 있습니다.
- 영향을 받는 구성 요소에는 헤더, 구독 영역 또는 사용자 컨텍스트에 따라 달라질 것으로 예상되는 기타 페이지 요소와 같은 항목이 포함될 수 있습니다.
- 개인화된 출력이 예상대로 렌더링되지 않더라도 로그 또는 브라우저에 명확한 오류 메시지가 표시되지 않을 수 있습니다.
- 캐시 준비 후 익명 세션과 인증된 세션의 동일한 페이지를 비교하고 영향을 받는 구성 요소가 원래 응답에서 서버 렌더링 HTML으로 반환되는지 또는 나중에 클라이언트 측 JavaScript에서 렌더링되는지 확인하여 문제를 확인할 수 있습니다.
해결 방법 resolution
문제를 해결하려면 다음 단계를 수행하십시오.
-
개인화에 사용된 구성 요소가 서버에서 렌더링된 HTML 조각으로 원본에서 반환되는지, 아니면 나중에 JavaScript에서 브라우저에서 렌더링하는지 확인합니다.
-
ESI를 사용하여 개인화된 콘텐츠를 조합해야 하는 경우 관련 구성 요소를 별도로 포함할 수 있는 서버 렌더링 HTML 조각으로 노출하십시오. 서버에서 렌더링된 조각 엔드포인트를 참조하도록 ESI 또는 Apache Sling Dynamic Include 구성을 업데이트합니다.
-
구성 요소가 클라이언트측 렌더링된 상태로 유지되어야 하는 경우 ESI를 사용하여 구성 요소를 어셈블하는 대신 해당 구성 요소에 대한 클라이언트측 개인화 패턴을 사용합니다.
-
업데이트된 구현의 유효성을 검사합니다.
- 익명 세션과 인증된 세션 모두에서 페이지를 테스트합니다.
- 각 세션이 캐시 준비 후 영향을 받는 구성 요소의 예상 버전을 수신하는지 확인합니다.
- 원본 응답에 ESI에서 처리하려는 구성 요소에 대한 예상 조각 출력이 포함되어 있는지 확인합니다.
experience-cloud-kcs-help-kbarticles