AEM as a Cloud Service에서 업데이트된 /etc.clientlibs 리소스에 대한 Dispatcher 캐시 무효화

이 문서에서는 Dispatcher 캐시 작업을 구성하고 캐시 무효화 기술을 사용하여 Adobe Experience Manager as a Cloud Service에서 배포 후 업데이트된 정적 리소스가 제공되도록 하는 방법에 대해 설명합니다./etc.clientlibs

설명 description

환경

Adobe Experience Manager as a Cloud Service (AEMaaCS) (모든 버전)

증상

  • /etc.clientlibs 아래의 업데이트된 정적 리소스(예: JavaScript 파일)는 배포 직후에 표시되지 않습니다.
  • 브라우저, Dispatcher 또는 CDN은 이전 버전의 파일을 계속 제공합니다.

원인

Dispatcher 및 CDN 캐시는 정적 리소스를 무효화하거나 플러시하지 않는 한 장기 캐시 헤더로 유지합니다. Cloud Manager 배포에서는 캐시 작업을 구성하지 않으면 /etc.clientlibs에 대해 이러한 캐시를 자동으로 지우지 않습니다. 업데이트를 즉시 전파하려면 URL 기반 캐시 무효화를 사용합니다.

해결 방법 resolution

다음 단계에 따라 문제를 해결하십시오.

  1. Cloud Manager 파이프라인에서 Dispatcher 캐시 작업을 구성합니다.

    1. Cloud Manager에서 배포 파이프라인을 편집합니다.

    2. Dispatcher 구성 섹션으로 이동한 다음 구성을 선택합니다.

    3. 다음 설정으로 캐시 작업을 추가합니다.

      1. 경로: /etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/*
      2. 유형: Invalidate을(를) 선택하여 캐시된 콘텐츠를 오래된 것으로 표시하거나 플러시를 선택하여 삭제합니다.
    4. 경로 추가, 적용을 선택한 다음 파이프라인 구성을 저장합니다.

    5. 파이프라인을 실행하여 지정된 경로를 무효화하거나 플러시합니다.

  2. 정적 리소스에 URL 기반 캐시 무효화 사용:

    • 정적 JavaScript 또는 CSS 파일을 업데이트할 때 swiper-bundle-v14.min.js과(와) 같이 버전이 지정된 파일 이름을 사용합니다.
    • 또는 swiper-bundle.min.js?v=20240819과(와) 같은 쿼리 매개 변수를 추가합니다.
    • URL을 변경하면 Dispatcher 및 CDN에서 업데이트된 파일을 새 리소스로 취급하게 됩니다.
  3. Cache-Control 헤더를 검토합니다.

    • max-age=31536000, immutable과(와) 같이 오래 지속되는 TTL을 사용하는 경우 리소스 URL의 버전을 지정하십시오.
    • URL 버전을 지정하지 않는 경우 더 짧은 TTL을 사용하고 헤더에서 immutable을(를) 제거하십시오.
  4. 프록시를 통해 클라이언트 라이브러리 제공:

    • allowProxy=true과(와) 함께 AEM 클라이언트 라이브러리를 통해 JavaScript 및 CSS를 제공합니다.
    • /etc.clientlibs/.../resources/*.js과(와) 같은 원시 URL을 하드 코딩하지 마십시오.
  5. 업데이트 확인:

    1. 파이프라인 실행이 완료되면 업데이트된 리소스 URL에 액세스합니다.
    2. 리소스에 최신 변경 사항이 포함되어 있는지 확인합니다.
    3. 예상 캐싱 동작을 확인하려면 응답 헤더를 검토하십시오.
recommendation-more-help
experience-cloud-kcs-help-kbarticles