Implantar arquivos de exibição estáticos

WARNING
Todos os comandos da CLI do Magento devem ser executados pelo proprietário do sistema de arquivos.

O comando static view files deployment permite gravar arquivos estáticos no sistema de arquivos do Commerce quando o software do Commerce está definido para modo de produção.

O termo arquivo de visualização estática refere-se ao seguinte:

  • "Estático" significa que ele pode ser armazenado em cache para um site (ou seja, o arquivo não é gerado dinamicamente). Os exemplos incluem imagens e CSS gerados de LESS.
  • "Visualização" refere-se à camada de apresentação (do MVC).

Os arquivos de visualização estáticos estão localizados no <magento_root>/pub/static e alguns são armazenados em cache no <magento_root>/var/view_preprocessed também.

A implantação de arquivos de visualização estática é afetada pelos modos de aplicativo da seguinte maneira:

  • Padrão e desenvolvedor modos: o Commerce os gera sob demanda, mas o restante é armazenado em cache em um arquivo para acelerar o acesso.
  • Produção modo: os arquivos estáticos são não gerado ou armazenado em cache.

Você deve gravar arquivos de exibição estáticos no sistema de arquivos do Commerce manualmente usando o comando discutido neste tópico. Depois disso, você poderá restringir as permissões para limitar suas vulnerabilidades e impedir a substituição acidental ou mal-intencionada de arquivos.

WARNING
Somente modo de desenvolvedor: quando você instala ou ativa um novo módulo, ele pode carregar novos JavaScript, CSS, layouts e assim por diante. Para evitar problemas com arquivos estáticos, você deve limpar os arquivos antigos para garantir que obtenha todas as alterações para o novo módulo. Você pode limpar arquivos de visualização estáticos gerados de várias maneiras. Consulte Tópico sobre cache de arquivos estáticos limpos para obter detalhes para obter mais informações.

Para implantar arquivos de visualização estáticos:

  1. Faça logon no servidor do Commerce como ou alternar para o proprietário do sistema de arquivos.

  2. Excluir o conteúdo de <magento_root>/pub/static, exceto para .htaccess arquivo. Não exclua este arquivo.

  3. Executar a ferramenta de implantação de arquivos de visualização estática <magento_root>/bin/magento setup:static-content:deploy.

    note info
    INFO
    Se você ativar a mesclagem de arquivos de visualização estática no Administrador, a variável pub/static o sistema de diretório deve ser gravável.

    Opções de comando:

    code language-bash
    bin/magento setup:static-content:deploy [<languages>] [-t|--theme[="<theme>"]] [--exclude-theme[="<theme>"]] [-l|--language[="<language>"]] [--exclude-language[="<language>"]] [-a|--area[="<area>"]] [--exclude-area[="<area>"]] [-j|--jobs[="<number>"]]  [--no-javascript] [--no-css] [--no-less] [--no-images] [--no-fonts] [--no-html] [--no-misc] [--no-html-minify] [--no-parent] [-f|--force]
    

A tabela a seguir explica os parâmetros e valores desse comando.

Opção
Descrição
Obrigatório?
<languages>
Lista separada por espaços de ISO-639 códigos de idioma para os quais os arquivos de exibição estáticos serão gerados. (O padrão é en_US.)
Localize a lista executando: bin/magento info:language:list
Não
--language (-l)
Gera arquivos somente para os idiomas especificados. O padrão, sem nenhuma opção especificada, é gerar arquivos para todos os códigos de idioma ISO-639. Você pode especificar o nome de um código de idioma por vez. O valor padrão é all.
Por exemplo: --language en_US --language es_ES
Não
--exclude-language
Gerar arquivos para os códigos de idioma especificados. O padrão, sem nenhuma opção especificada, é não excluir nada. Você pode especificar o nome de um código de idioma ou uma lista de códigos de idioma separada por vírgulas. O valor padrão é nenhum.
Não
--theme <theme>
Temas para os quais implantar conteúdo estático. O valor padrão é all.
Por exemplo: --theme Magento/blank --theme Magento/luma
Não
--exclude-theme <theme>
Temas a serem excluídos ao implantar conteúdo estático. O valor padrão é nenhum.
Por exemplo, --exclude-theme Magento/blank
Não
--area (-a)
Gera arquivos somente para as áreas especificadas. O padrão, sem opção especificada, é gerar arquivos para todas as áreas. Os valores válidos são adminhtml e frontend. O valor padrão é all.
Por exemplo: --area adminhtml
Não
--exclude-area
Não gerar arquivos para as áreas especificadas. O padrão, sem nenhuma opção especificada, é não excluir nada. O valor padrão é nenhum.
Não
--jobs (-j)
Ativar processamento paralelo usando o número especificado de trabalhos. O padrão é 0 (não executar em processos paralelos). O valor padrão é 0.
Não
--symlink-locale
Crie symlinks para os arquivos dessas localidades, que são transmitidos para implantação, mas não têm personalizações.
Não
--content-version=CONTENT-VERSION
A versão personalizada do conteúdo estático pode ser usada se a implantação estiver em execução em vários nós para garantir que a versão do conteúdo estático seja idêntica e o armazenamento em cache funcione corretamente.
Não
--no-javascript
Não implantar arquivos JavaScript
Não
--no-css
Não implante arquivos CSS.
Não
--no-less
Não implante MENOS arquivos.
Não
--no-images
Não implantar imagens.
Não
--no-fonts
Não implantar arquivos de fonte.
Não
--no-html
Não implante arquivos HTML.
Não
--no-misc
Não implante outros tipos de arquivos: MD, JBF, CSV, JSON, TXT, HTC, SWF
Não
--no-html-minify
Não minifique arquivos HTML.
Não
-s <quick|standard|compact>

Definir a estratégia de implantação. Use essas opções somente se você tiver mais de um local.

  • Use o estratégia rápida para minimizar o tempo de implantação. Esta é a opção de comando padrão, se não for especificada.
  • Use o estratégia padrão para implantar todos os arquivos de exibição estáticos para todos os pacotes.
  • Use o estratégia compacta para economizar espaço em disco no servidor.
Não
--no-parent
Não gerar arquivos para os temas principais do tema atual. É altamente recomendável usar esse sinalizador se você não usar explicitamente o tema principal do tema atual que está tentando implantar. Isso aumenta significativamente a velocidade do processo. Esse sinalizador está disponível no Commerce 2.4.2
Não
--force (-f)
Implante arquivos em qualquer modo. (por padrão, a ferramenta de implantação de conteúdo estático pode ser executada somente no modo de produção. Use essa opção para executá-la no modo padrão ou de desenvolvedor).
Não
INFO
Se você especificar valores para ambos <languages> e --language, <languages> tem precedência.

Exemplos

A seguir estão alguns exemplos de comandos.

Excluir um tema e minificação de HTML

O comando a seguir implanta conteúdo estático para o inglês dos EUA (en_US), exclui o tema Luma fornecido com o Commerce e não minifica arquivos HTML.

bin/magento setup:static-content:deploy en_US --exclude-theme Magento/luma --no-html-minify

Saída de exemplo:

Requested languages: en_US
Requested areas: frontend, adminhtml
Requested themes: Magento/blank, Magento/backend
=== frontend -> Magento/blank -> en_US ===
=== adminhtml -> Magento/backend -> en_US ===
...........................................................
... more ...
Successful: 2055 files; errors: 0
---

New version of deployed files: 1466710645
............
Successful: 1993 files; errors: 0
---

O comando a seguir implanta somente o JavaScript, com 4 tarefas, com uma estratégia de implantação padrão:

bin/magento setup:static-content:deploy -s standard --no-misc --no-html --no-fonts --no-images --no-less --no-css -j 4

O comando a seguir implanta somente CSS e MENOS com 3 tarefas e uma estratégia de implantação rápida:

bin/magento setup:static-content:deploy -s quick --no-misc --no-html --no-fonts --no-images --no-javascript -j 3

Geração de arquivos de visualização estáticos para um tema e uma área

O comando a seguir gera arquivos de exibição estáticos para todos os idiomas, somente a área de front-end e somente o tema Luma do Commerce, sem gerar fontes:

bin/magento setup:static-content:deploy --area frontend --no-fonts --theme Magento/luma

Saída de exemplo:

Requested languages: en_US
Requested areas: frontend
Requested themes: Magento/luma
=== frontend -> Magento/luma -> en_US ===
...........................................................
... more ...
........................................................................
Successful: 2092 files; errors: 0
---

New version of deployed files: 1466711110

Implantar arquivos de exibição estáticos sem instalar o Commerce

Você pode executar o processo de implantação em um ambiente separado, não relacionado à produção, para evitar processos de criação em máquinas de produção confidenciais.

Para fazer isso, siga estas etapas:

  1. Executar bin/magento app:config:dump para exportar a configuração do seu sistema de produção.
  2. Copie os arquivos exportados para a base de código de não produção.
  3. Implantar arquivos de exibição estáticos: bin/magento setup:static-content:deploy

Solução de problemas da ferramenta de implantação de arquivos de visualização estática

Instalar o software Commerce primeiro; caso contrário, não será possível executar a ferramenta de implantação de arquivos de exibição estática.

Sintoma: o seguinte erro é exibido ao executar a ferramenta de implantação de arquivos de exibição estáticos:

ERROR: You need to install the Commerce application before running this utility.

Solução:

Use as seguintes etapas:

  1. Instale o software Commerce usando o linha de comando.
  2. Efetue login no servidor de aplicativos como ou alternar para, o proprietário do sistema de arquivos.
  3. Excluir o conteúdo de <app_root>/pub/static diretório, exceto para .htaccess arquivo. Não exclua este arquivo.
  4. Implantar arquivos de exibição estáticos: bin/magento setup:static-content:deploy

Dica para desenvolvedores personalizarem a ferramenta de implantação de conteúdo estático

Ao criar uma implementação personalizada da ferramenta de implantação de conteúdo estático, use somente a gravação de arquivo atômico para arquivos que devem estar disponíveis no cliente. Se você usar gravação de arquivo não atômico, esses arquivos poderão ser carregados no cliente com conteúdo parcial.

Uma das opções para torná-lo atômico é gravar em arquivos armazenados em um diretório temporário e copiá-los ou movê-los para o diretório de destino (de onde são carregados para o cliente) após a gravação terminar. Para obter detalhes sobre a gravação em arquivos, consulte fwrite php.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c