Falha no check-out quando a minificação e o empacotamento de JS estão ativados
Este artigo fornece uma correção para o problema do Adobe Commerce que impede o funcionamento correto da finalização quando a minificação, o empacotamento e (em alguns casos) a mesclagem de ativos do JavaScript (JS) são ativados.
Descrição description
Ambiente
Adobe Commerce, todos os métodos de implantação.
Problema/Sintomas
Alterações recentes no recurso Política de segurança de conteúdo (CSP) causaram falha na funcionalidade de check-out quando a minificação, o empacotamento e, em alguns casos, a mesclagem de ativos JS estão ativados. Esse problema pode bloquear completamente o posicionamento do pedido na loja.
Produtos e versões afetados
Magento Open Source e Adobe Commerce (todos os métodos de implantação):
- 2.4.4-p16
- 2.4.5-p15
- 2.4.6-p13
- 2.4.7-p8
- 2.4.8-p3
Etapas a serem reproduzidas:
-
Verifique se o módulo CSP está habilitado.
-
Alterne para o modo de Produção e ative a minificação e o agrupamento de ativos JS.
-
Implante conteúdo estático e limpe o cache.
-
Navegue até a vitrine e tente fazer um pedido.
-
Verifique se há erros de JS no console do navegador durante cada etapa do fluxo de check-out.
- Se houver erros ou o check-out falhar explicitamente, a loja será afetada.
- Se não houver erros e o pedido for possível, verifique se
mixins.min.jsestá presente na página Check-out. Semixins.min.jsestiver ausente, mas o check-out funcionar, o problema existe, mas não afeta visivelmente o armazenamento.
Causa
As alterações no recurso CSP resultaram na geração incorreta de hashes de Integridade de sub-recursos (SRI) para arquivos JS minificados quando o empacotamento está habilitado, devido a caminhos de arquivo incorretos.
Isso, por sua vez, impediu que mixins.min.js e static.min.js fossem renderizados corretamente na página Check-out, causando várias falhas durante o posicionamento do pedido.
Resolução resolution
As lojas em execução em qualquer uma das versões afetadas devem aplicar o patch correspondente para resolver o problema.
- Para a versão 2.4.4-p16
- Para a versão 2.4.5-p15
- Para as versões 2.4.6-p13 e 2.4.7-p8
- Para a versão 2.4.8-p3
Esses patches revertem as alterações relacionadas à CSP mencionadas acima e restauram o recurso da CSP ao seu estado antes dessas alterações.
Observação: A aplicação desses patches reintroduz alguns problemas conhecidos anteriormente relacionados à funcionalidade da SRI:
- Nas versões 2.4.7-p8 e anteriores, os hashes SRI serão armazenados em cache novamente em vez de serem armazenados em
sri-hashes.json. - Nas versões 2.4.8-p3 e anteriores, os ativos JS agrupados/mesclados não serão submetidos à validação de hashes de integridade.
- As instâncias de nuvem na versão 2.4.8-p3 podem ter gerado incorretamente
sri-hashes.jsonarquivos que contêm hashes SRI apenas para uma fração de ativos JS.
Como aplicar o patch
Descompacte o arquivo e consulte Como aplicar um patch de compositor fornecido pelo Adobe para obter mais instruções.