O modo de desenvolvedor Magento 2 não regenera arquivos estáticos automaticamente


14

Eu tenho uma instalação do Magento 2.0.2 no modo de desenvolvedor e ainda não consigo descobrir como forçá-lo a regenerar os arquivos de exibição estática sempre que faço uma alteração no meu CSS.

Eu verifiquei que estou no modo de desenvolvedor executando php bin/magento deploy:mode:show

Em desta página diz que o modo de desenvolvedor desativa arquivos visão estática de Cache, mas que não é o caso para mim.

Eu tentei editar o di.xmlcomo mencionado nesta solução, mas isso não mudou o comportamento do Magento.

Como posso dizer ao magento para regenerar automaticamente os arquivos de exibição estática?

Respostas:


4

No modo de desenvolvedor, o M2 não gera arquivos estáticos. Deve criar links simbólicos para eles a partir dos vários módulos. Se você tiver executado o setup: static-content: deploy e tiver esses arquivos no lugar, ele não será atualizado. Tente remover todos os arquivos estáticos e veja se o Magento está vinculado a eles (tenha cuidado para não remover os arquivos reais se tiver links simbólicos)


1
Tentei excluir todo o conteúdo de pub / static (sem excluir o arquivo .htaccess) e não funcionou. Parece que os arquivos antigos foram regenerados.
AlexandreC

Atualmente, a única maneira de obter o conteúdo atualizado é clicando em 'Flush Static Files Cache' na página Magento Cache Management.
AlexandreC

4
Eu tive o mesmo problema de links simbólicos não serem gerados no modo desenvolvedor; então percebi que havia excluído o .htaccesarquivo de pub/static; uma vez que eu restaurei o .htaccessarquivo na pub/staticpróxima solicitação, regenerarei todos os links simbólicos; espero que ajude.
Alessandro Ronchi 22/03

Atualmente, tenho o mesmo problema com o Magento 2.0.6. Tentei adicionar novamente o .htaccessarquivo-(eu executo o nginx, então não achei que seria muito útil) e, como esperado, não funcionou. Anteriormente meus links simbólicos foram criadas, mas agora não mais ...
Giel Berkers

1
Como pensávamos que era pub/staticgerada automaticamente, também a excluímos manualmente em um ponto e deparamos com o mesmo problema. Parece que em nossa configuração apache2 / php7 o arquivo .htaccess agora ausente é realmente responsável por isso. Após recriar o modo de desenvolvedor .htaccess original, estava funcionando bem novamente. Aqui o link para os Htacces recentes: github.com/magento/magento2/blob/develop/pub/static/.htaccess
Jey Dwork

1

O mesmo aconteceu comigo. Depois de mover o site para outro servidor, descobrimos que não defini as permissões de arquivo corretas.

Eu corri find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magentoe isso resolveu meu problema.

Mais informações: Magento 2: permissão de arquivo recomendada para hospedagem compartilhada

Atualização: verifique se a pasta pub (magento / pub) e as pastas subjacentes têm permissões de leitura e gravação.


2
Quem votou mal: por quê?
Chris K

0

Um pouco tarde aqui, mas estava com o mesmo problema. Eu tinha o developermodo ativado por algum tempo e, por algum motivo (provavelmente um erro da minha parte em algum momento), ele não parecia mais funcionar.

A solução simples para mim foi redefinir o modo para desenvolvedor novamente:

php bin/magento deploy:mode:show developer

NB: Pode ser necessário configurá-lo para defaulte depois developer.


Isso também não ajudou. Alguma outra sugestão?
Adarsh ​​Khatri

0

Eu estava enfrentando o mesmo problema com minhas menos atualizações, mostrando a menos que eu liberasse meus arquivos estáticos. A correção para mim foi desativar mod_expires. Isso estava armazenando em cache o css e etc.

Dentro do pub/static/.htaccessarquivo, você deverá ter algo como o seguinte:

<IfModule mod_expires.c>

############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

    ExpiresActive On

    # Data
    <FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$>
        ExpiresDefault "access plus 0 seconds"
    </FilesMatch>
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType text/csv "access plus 0 seconds"
    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType application/zip "access plus 0 seconds"
    ExpiresByType application/x-gzip "access plus 0 seconds"
    ExpiresByType application/x-bzip2 "access plus 0 seconds"

    # CSS, JavaScript, html
    <FilesMatch \.(css|js|html|json)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType text/html "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    ExpiresByType application/json "access plus 1 year"

    # Favicon, images, flash
    <FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType image/gif "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/svg+xml "access plus 1 year"

    # Fonts
    <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$>
        ExpiresDefault "access plus 1 year"
    </FilesMatch>
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType application/x-font-ttf "access plus 1 year"
    ExpiresByType application/x-font-otf "access plus 1 year"
    ExpiresByType application/x-font-woff "access plus 1 year"
    ExpiresByType application/font-woff2 "access plus 1 year"

</IfModule>

Desabilitando mod_expiresou comentando o exposto acima e fazendo uma atualização forte no seu navegador (os usuários de Mac pressionam Shift + Command + r), as alterações devem começar a ser exibidas sempre que você as fizer.


0

Eu também tive esse problema!

Acontece que, no meu caso, era uma questão de permissão.

cat /etc/apache2/logs/error_log | grep static

e

tail -f / etc / apache2 / logs / error_log | grep estático

me deu informações interessantes (talvez seu arquivo de log possa ter um nome diferente)

primeiro vi:

[Wed Oct 30 12:19:34.287356 2019] [core:crit] [pid 27633] (13)Permission denied: [client 24.48.87.7:16680] AH00529: /home/[datuser]/public_html/pub/static/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable and that '/home/[datuser]/public_html/pub/static/' is executable

descobriu-se que minha pasta pub / estática não era executável. Então, depois de consertar que recebi

[Wed Oct 30 12:22:46.490759 2019] [:error] [pid 27290] [client ipremoved] SoftException in Application.cpp:267: File "/home/[datuser]/public_html/pub/static.php" is writeable by group, referer: [url removed]
[Wed Oct 30 12:22:46.490961 2019] [core:error] [pid 27290] [client ipremoved] End of script output before headers: static.php, referer: [url removed]

No nosso servidor, o apache não pode exibir arquivos graváveis ​​por grupo por algum motivo, acredito que algumas coisas de segurança do Cpanel. Então eu tive que definir 644 em todos os arquivos no pub e finalmente meus links simbólicos começaram a ser criados !!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.