Implantar arquivos de exibição estáticos
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.
Para implantar arquivos de visualização estáticos:
-
Faça logon no servidor do Commerce como ou alternar para o proprietário do sistema de arquivos.
-
Excluir o conteúdo de
<magento_root>/pub/static
, exceto para.htaccess
arquivo. Não exclua este arquivo. -
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.
<languages>
en_US
.)Localize 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 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.
--no-parent
--force (-f)
<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:
- Executar
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
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:
- Instale o software Commerce usando o linha de comando.
- Efetue login no servidor de aplicativos como ou alternar para, o proprietário do sistema de arquivos.
- Excluir o conteúdo de
<app_root>/pub/static
diretório, exceto para.htaccess
arquivo. 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 obter detalhes sobre a gravação em arquivos, consulte fwrite php.