Implantar arquivos de exibição estáticos
O comando de implantação de arquivos de exibição estática 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 exibição estático 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 exibição estáticos estão localizados no diretório <magento_root>/pub/static
, e alguns também são armazenados em cache no diretório <magento_root>/var/view_preprocessed
.
A implantação de arquivos de visualização estática é afetada pelos modos de aplicativo da seguinte maneira:
- Modos Padrão e desenvolvedor: o Commerce os gera sob demanda, mas o restante é armazenado em cache em um arquivo para acelerar o acesso.
- Modo de Produção: os arquivos estáticos são não gerados ou armazenados 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ê pode restringir permissões para limitar suas vulnerabilidades e impedir a substituição acidental ou mal-intencionada de arquivos.
Para implantar arquivos de exibição estáticos:
-
Faça logon no servidor Commerce como ou alterne para o proprietário do sistema de arquivos.
-
Excluir o conteúdo de
<magento_root>/pub/static
, exceto o arquivo.htaccess
. Não exclua este arquivo. -
Execute a ferramenta de implantação de arquivos de exibição estática
<magento_root>/bin/magento setup:static-content:deploy
.note info INFO Se você habilitar a mesclagem de arquivos de exibição estática no Administrador, o sistema de diretório pub/static
deverá 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.
<languages>
en_US
.)Localizar a lista executando:
bin/magento info:language:list
--language (-l)
Por exemplo:
--language en_US --language es_ES
--exclude-language
--theme <theme>
Por exemplo:
--theme Magento/blank --theme Magento/luma
--exclude-theme <theme>
Por exemplo,
--exclude-theme Magento/blank
--area (-a)
adminhtml
e frontend
. O valor padrão é all.Por exemplo:
--area adminhtml
--exclude-area
--jobs (-j)
--symlink-locale
--content-version=CONTENT-VERSION
--no-javascript
--no-css
--no-less
--no-images
--no-fonts
--no-html
--no-misc
--no-html-minify
-s <quick|standard|compact>
Definir a estratégia de implantação. Use essas opções somente se você tiver mais de um local.
- Use a 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 a estratégia padrão para implantar todos os arquivos de exibição estáticos para todos os pacotes.
- Use a estratégia compacta para conservar o espaço em disco no servidor.
--no-parent
--force (-f)
<languages>
e --language
, <languages>
tem prioridade.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 idioma 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 do Commerce Luma, 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 visualizaçã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:
- Execute
bin/magento app:config:dump
para exportar a configuração do seu sistema de produção. - Copie os arquivos exportados para a base de código de não produção.
- 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
Instale o software do Commerce primeiro; caso contrário, você não poderá executar a ferramenta de implantação de arquivos de exibição estáticos.
Sintoma: o seguinte erro é exibido quando você executa a ferramenta de implantação de arquivos de exibição estática:
ERROR: You need to install the Commerce application before running this utility.
Solução:
Use as seguintes etapas:
- Instale o software Commerce usando a linha de comando.
- Faça logon no servidor de aplicativos como, ou alterne para, o proprietário do sistema de arquivos.
- Exclua o conteúdo do diretório
<app_root>/pub/static
, exceto pelo arquivo.htaccess
. Não exclua este arquivo. - 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 detalhes sobre a gravação em arquivos, veja php fwrite.