Alterações em CSS e JavaScript se aplicam somente após a implantação de conteúdo estático

8

Eu instalei o Magento 2 no site Magento. Ativei o modo de desenvolvedor por

{project directory}>php bin/magento setup:mode:set developer

Instalei meu tema personalizado e, finalmente, implantei meu conteúdo estático

{project directory}>php bin/magento setup:static-content:deploy

Meu problema é que tenho que excluir o pub/staticdiretório e implantar conteúdo estático toda vez para aplicar as alterações de css e javacript. O processo de implantação de conteúdo estático é lento e leva tanto tempo que é muito frustrante. Eu desenvolvo algo e tenho que implantar para que a mudança apareça. Mesmo para mudanças muito pequenas. A descarga do cache não está ajudando. Qualquer ajuda seria apreciada. Desde já, obrigado.

Janaka Dombawela
fonte

Respostas:

4

Por enquanto, você só tem essa maneira de aplicar alterações. O Magento deve aplicar alterações ao diretório pub / static, mas não. Isso ainda sabe bug. Espero que seja corrigido em breve.
Você pode aplicar novas alterações por comando, como faz. Dessa forma, levará alguns momentos, mas deverá funcionar do
meu jeito quando eu modificar js da minha extensão. Eu apenas vou ao diretório dir e limpe a pasta

\pub\static\frontend\Magento\luma\en_US\<Vendor_Module>\js

Você pode fazer o mesmo com arquivos css ao personalizar estilos

mrtuvn
fonte
Você conhece algum ticket no github ou é sua opinião pessoal? Como eu sei, não há problema.
precisa saber é
4

O Magento tem uma estratégia diferente para materializar ativos estáticos. Ao executar o setup: static-content: deploy este comando, use Copy strategy e o arquivo será materializado na pasta estática e não será alterado quando o original for alterado.

Se você limpar a pasta estática e abrir a página no navegador, a estratégia de link será usada e o link no arquivo original será criado. Então você modificará a fonte e verá as alterações

KAndy
fonte
Isso mesmo, mas leva mais tempo para carregar a página após limpar o conteúdo estático e não implantá-lo. Há também um problema no cache do navegador, embora possamos usar guias anônimas nesse caso, o que aumenta novamente o tempo de carregamento à medida que novos conteúdos são criados. Basicamente, é um processo demorado e você não pode negar isso.
Sanjay Chaudhary
0

Mas depois que eu removi manualmente do diretório \ pub \ static \ frontend \ Magento \ luma \ en_US \ Vendor_Module \ js, ele não é gerado automaticamente após o carregamento da página. Para isso novamente, eu tenho que aplicar o comando static-content deploy, para que ocorram novas alterações nos arquivos js & css, o que fiz para o módulo específico.

Sharad
fonte
0

Se você correr

bin/magento dev:source-theme:deploy --theme [Vendor]/[theme] --locale <locale>

antes da implantação do ativo estático, o Magento criará no link simbólico do diretório pub / static (não copiar) para os arquivos do fornecedor.

Assim, você pode modificar os arquivos em seu tema e automaticamente os arquivos gerados em pub / static sem executar bin / magento setup: static-content: deploy sempre.

Agora você pode usar um executor de tarefas para compilar seus arquivos e gerar o css.

nuovecode
fonte
0

O problema é que, quando você exclui todo o conteúdo de pub / static, também exclui o arquivo .htaccess e isso causa problemas ao gerar links simbólicos para o recurso estático no modo de desenvolvedor.

Assim,

  1. Não exclua o arquivo .htacess.
  2. Exclua apenas o diretório do seu tema específico, ex. excluir conteúdo apenas em pub / static / frontend / Your / theme

Pela minha experiência, ao usar links simbólicos para arquivos estáticos no modo Desenvolvedor, você não precisa excluí-los para ver suas alterações. Em caso de dúvida, basta executar

php bin/magento cache:flush
Iveta Allogenes
fonte