JS 축소 및 번들링을 활성화하면 체크아웃이 실패합니다

이 문서에서는 JavaScript(JS) 에셋의 축소, 번들링 및 (경우에 따라) 병합을 활성화할 때 체크아웃이 제대로 작동하지 않는 Adobe Commerce 문제에 대한 패치를 제공합니다.

설명 description

환경

Adobe Commerce, 모든 배포 메서드.

문제/증상

콘텐츠 보안 정책(CSP) 기능의 최근 변경 사항으로 인해 축소, 번들 및 경우에 따라 JS 에셋 병합을 활성화할 때 체크아웃 기능이 실패하게 되었습니다. 이 문제는 상점 첫 화면의 주문 배치를 완전히 차단할 수 있습니다.

영향을 받는 제품 및 버전

Magento Open Source 및 Adobe Commerce(모든 배포 방법):

  • 2.4.4-p16
  • 2.4.5-p15
  • 2.4.6-p13
  • 2.4.7-p8
  • 2.4.8-p3

재현 단계:

  1. CSP 모듈이 활성화되어 있는지 확인합니다.

  2. 프로덕션 모드로 전환하고 JS 에셋의 축소 및 번들링을 활성화합니다.

  3. 정적 콘텐츠 배포 및 캐시 플러시.

  4. 상점 앞으로 이동하여 주문을 시도합니다.

  5. 체크아웃 흐름의 각 단계 동안 브라우저 콘솔에서 JS 오류를 확인합니다.

    • 오류가 있거나 체크아웃이 명시적으로 실패하면 저장소가 영향을 받습니다.
    • 오류가 없고 주문 배치가 가능한 경우 mixins.min.js체크아웃 페이지에 이(가) 있는지 확인하십시오. mixins.min.js이(가) 없지만 체크아웃이 작동하는 경우 - 문제가 존재하지만 저장소에 가시적으로 영향을 주지 않습니다.

원인

CSP 기능을 변경하면 잘못된 파일 경로로 인해 번들링이 활성화될 때 축소된 JS 파일에 대한 SRI(Subresource Integrity) 해시가 잘못 생성됩니다.

이렇게 되면 mixins.min.js체크아웃static.min.js 페이지에서 이(가) 제대로 렌더링되지 않아 주문 배치 중에 다양한 오류가 발생합니다.

해결 방법 resolution

영향을 받는 버전에서 실행 중인 저장소는 해당 패치를 적용하여 문제를 해결해야 합니다.

이러한 패치는 위에 언급된 CSP 관련 변경 사항을 되돌리고 CSP 기능을 해당 변경 전의 상태로 복원합니다.

참고: 이 패치를 적용하면 SRI 기능과 관련하여 이전에 알려진 몇 가지 문제가 다시 발생합니다.

  • 버전 2.4.7-p8 이하에서 SRI 해시는 sri-hashes.json에 저장되지 않고 다시 캐시됩니다.
  • 버전 2.4.8-p3 이하에서 번들/병합된 JS 자산은 무결성 해시 유효성 검사를 받지 않습니다.
  • 버전 2.4.8-p3의 클라우드 인스턴스에서 일부 JS 에셋에 대해서만 SRI 해시가 포함된 sri-hashes.json개의 파일을 잘못 생성했을 수 있습니다.

패치 적용 방법

파일의 압축을 풀고 자세한 지침은 Adobe에서 제공하는 작성기 패치를 적용하는 방법을 참조하십시오.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f