Estratégias de implantação de conteúdo estático
A implantação de conteúdo estático (SCD) tem um impacto significativo no processo de implantação da loja, que depende do volume de conteúdo a ser gerado (como imagens, scripts, CSS, vídeos, temas, localidades e páginas da Web) e quando gerar o conteúdo. Por exemplo, a estratégia padrão gera conteúdo estático durante a fase de implantação quando o site está em modo de manutenção; no entanto, essa estratégia de implantação leva tempo para gravar o conteúdo diretamente no diretório pub/static
montado. Você tem várias opções ou estratégias para ajudar a melhorar o tempo de implantação, dependendo das suas necessidades.
Otimizar conteúdo do JavaScript e do HTML
Você pode usar o agrupamento e a minificação para criar conteúdo otimizado de JavaScript e HTML durante a implantação de conteúdo estático.
Reduzir conteúdo
Você pode melhorar o tempo de carregamento do SCD durante o processo de implantação se ignorar a cópia dos arquivos de exibição estáticos no diretório var/view_preprocessed
e gerar o HTML minified quando solicitado. Você pode ativar isso definindo a variável de ambiente global SKIP_HTML_MINIFICATION como true
no arquivo .magento.env.yaml
.
ece-tools
, o valor padrão da variável SKIP_HTML_MINIFICATION é definido como true
.Você pode economizar mais tempo de implantação e espaço em disco, reduzindo o número de arquivos de tema desnecessários. Por exemplo, você pode implantar o tema magento/backend
em inglês e um tema personalizado em outros idiomas. Você pode definir essas configurações de tema com a variável de ambiente SCD_MATRIX.
Escolha de uma estratégia de implantação
As estratégias de implantação diferem com base na escolha entre gerar conteúdo estático durante a fase de compilação, a fase de implantação ou sob demanda. Como visto no gráfico a seguir, gerar conteúdo estático durante a fase de implantação é a opção menos ideal. Mesmo com o HTML minificado, cada arquivo de conteúdo deve ser copiado para o diretório ~/pub/static
montado, o que pode levar muito tempo. Gerar conteúdo estático sob demanda parece ser a escolha ideal. No entanto, se o arquivo de conteúdo não existir no cache gerado no momento em que é solicitado, o que adiciona tempo de carregamento à experiência do usuário. Portanto, gerar conteúdo estático durante a fase de criação é o ideal.
Configuração do SCD na compilação
Gerar conteúdo estático durante a fase de compilação com HTML minified é a configuração ideal para zero-downtime implantações, também conhecido como estado ideal. Em vez de copiar arquivos para uma unidade montada, ele cria um link simbólico do diretório ./init/pub/static
.
A geração de conteúdo estático requer acesso a temas e localidades. O Adobe Commerce armazena temas no sistema de arquivos, que é acessível durante a fase de criação; no entanto, o Adobe Commerce armazena localidades no banco de dados. O banco de dados não está disponível durante a fase de compilação. Para gerar o conteúdo estático durante a fase de compilação, você deve usar o comando config:dump
no pacote ece-tools
para mover localidades para o sistema de arquivos. Ele lê as localidades e as salva no arquivo app/etc/config.php
.
Para configurar seu projeto para gerar o SCD na compilação:
-
Na estação de trabalho local, altere para o diretório do projeto.
-
Use o SSH para fazer logon no ambiente remoto.
code language-bash magento-cloud ssh
-
Mova as localidades para o sistema de arquivos e atualize o
config.php
arquivo. -
O arquivo de configuração
.magento.env.yaml
deve conter os seguintes valores:- SKIP_HTML_MINIFICATION é
true
- SKIP_SCD no estágio de compilação é
false
- SCD_STRATEGY é
compact
- SKIP_HTML_MINIFICATION é
-
Verifique a configuração do gancho de implantação do Post no arquivo
.magento.app.yaml
. -
Verifique suas configurações executando o Assistente inteligente para o estado ideal.
code language-bash php ./vendor/bin/ece-tools wizard:ideal-state
Definição do SCD sob demanda
A geração de SCD sob demanda é ideal para um fluxo de trabalho de desenvolvimento no ambiente de integração. Ele diminui o tempo de implantação para que você possa revisar rapidamente suas implementações e executar testes de integração. Habilite a variável de ambiente SCD_ON_DEMAND no estágio global do arquivo .magento.env.yaml
. A variável SCD_ON_DEMAND substitui todas as outras configurações relacionadas ao SCD e limpa o conteúdo existente do diretório ~/pub/static
.
Ao usar a estratégia de solicitação de SCD, é útil pré-carregar o cache com as páginas que você espera solicitar, como a página inicial. Adicione a lista de páginas esperadas na variável de ambiente WARM_UP_PAGES no estágio pós-implantação do arquivo .magento.env.yaml
.
Ignorando SCD
Às vezes, você pode optar por ignorar completamente a geração de conteúdo estático. Você pode definir a variável de ambiente SKIP_SCD no estágio global para ignorar outras configurações relacionadas ao SCD. Isso não afeta o conteúdo existente no diretório ~/pub/static
.