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
다음 단계에 따라 문제를 해결하십시오.
-
Cloud Manager 파이프라인에서 Dispatcher 캐시 작업을 구성합니다.
-
Cloud Manager에서 배포 파이프라인을 편집합니다.
-
Dispatcher 구성 섹션으로 이동한 다음 구성을 선택합니다.
-
다음 설정으로 캐시 작업을 추가합니다.
- 경로:
/etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/* - 유형: Invalidate을(를) 선택하여 캐시된 콘텐츠를 오래된 것으로 표시하거나 플러시를 선택하여 삭제합니다.
- 경로:
-
경로 추가, 적용을 선택한 다음 파이프라인 구성을 저장합니다.
-
파이프라인을 실행하여 지정된 경로를 무효화하거나 플러시합니다.
-
-
정적 리소스에 URL 기반 캐시 무효화 사용:
- 정적 JavaScript 또는 CSS 파일을 업데이트할 때
swiper-bundle-v14.min.js과(와) 같이 버전이 지정된 파일 이름을 사용합니다. - 또는
swiper-bundle.min.js?v=20240819과(와) 같은 쿼리 매개 변수를 추가합니다. - URL을 변경하면 Dispatcher 및 CDN에서 업데이트된 파일을 새 리소스로 취급하게 됩니다.
- 정적 JavaScript 또는 CSS 파일을 업데이트할 때
-
Cache-Control헤더를 검토합니다.max-age=31536000, immutable과(와) 같이 오래 지속되는 TTL을 사용하는 경우 리소스 URL의 버전을 지정하십시오.- URL 버전을 지정하지 않는 경우 더 짧은 TTL을 사용하고 헤더에서
immutable을(를) 제거하십시오.
-
프록시를 통해 클라이언트 라이브러리 제공:
allowProxy=true과(와) 함께 AEM 클라이언트 라이브러리를 통해 JavaScript 및 CSS를 제공합니다./etc.clientlibs/.../resources/*.js과(와) 같은 원시 URL을 하드 코딩하지 마십시오.
-
업데이트 확인:
- 파이프라인 실행이 완료되면 업데이트된 리소스 URL에 액세스합니다.
- 리소스에 최신 변경 사항이 포함되어 있는지 확인합니다.
- 예상 캐싱 동작을 확인하려면 응답 헤더를 검토하십시오.
recommendation-more-help
experience-cloud-kcs-help-kbarticles