Instalei o Magento 2 e configurei o modo de desenvolvedor, depois instalei um módulo que contém arquivos css e js. O módulo funciona bem e os arquivos css e js são renderizados a partir da pasta pub / static. Agora eu fiz alterações css no arquivo css do diretório de módulos e execute o comando
php bin/magento setup:static-content:deploy
mas o Magento não está fazendo minhas novas alterações nos arquivos pub / estáticos css, por isso estou obtendo o conteúdo antigo dos arquivos css. Alguém sabe como regenerar todo o arquivo css na pasta pub / static?
magento2
css
deploy
static-content-deploy
chirag dodia
fonte
fonte
.htaccess
arquivo napub/static
pasta para que ele saiba como vincular os arquivos, se você excluiu a pasta pub / estática que.htaccess
está faltando agoraRespostas:
Antes de excluir pub / static, faça um backup de pub / static / .htaccess e restaure-o novamente. caso contrário, todos os seus css e js mostrarão erro 404!
pub/static
[Mantenha o backup do .htaccess e copie-o novamente]var/cache
var/composer_home
var/generation
var/page_cache
var/view_preprocessed
php bin/magento setup:static-content:deploy
fonte
as respostas aqui não mencionam que você não deve excluir o .htaccess na pasta pub / static.
para excluir todos os arquivos, exceto os .htacces, digite o diretório pub / static e execute
então você pode correr
fonte
Acabei de excluir os arquivos css da
pub/static
pasta e execute o comando:Ele irá gerar novamente o mesmo arquivo com as alterações mais recentes.
fonte
Como a pergunta é para
js and css
atualização no Magento 2 no modo de desenvolvedor .pub/static/frontend/namespace/theme/ ... module/js/...
é excluído para excluí-lo, para que, após a atualização da página, o arquivo JS fresco gere na pasta pub.Tema de instalação no magento
...\dev\tools\grunt\configs\themes.js
Clone qualquer tema luma de exemplo de tema único e atribua um nome, suponha xyz
Na pasta raiz, altere o nome do arquivo: Gruntfile.js.sample para Gruntfile.js
Na pasta raiz, altere o nome do arquivo: package.json.sample para package.json
Precisa ter um grunhido na pasta do seu site para instalar via npm
Abrir prompt de comando com permissão de administrador
Vá para a pasta do site no CMD e pressione o comando
grunt exec:theme
pela primeira vez após implantar o temaEntão,
grunt less:theme
sempre que fizermos alterações em menosSe você estiver fazendo alterações frequentes com menos uso
grunt watch
, isso acerta automaticamentegrunt less:theme
fonte
Maneira simples 1
No Admin do Magento. Vá para
System > Tools > Cache Management
e clique em Flush Static Files Cache .Maneira simples 2
Se você acabou de alterar o arquivo css que já existente , o que você precisa fazer é simplesmente excluir o arquivo correspondente
pub/static
, então quando você atualizar a página, ele irá gerar o novo arquivo versão css. Funciona no modo desenvolvedor .Aviso prévio
Quando você cria um novo arquivo, em vez de modificar um arquivo existente, também pode ser necessário limpar o cache
php bin/magento cache:flush
,.O modo padrão e o modo de desenvolvedor não precisam implantar arquivos de exibição estáticos , porque os arquivos estáticos são gerados dinamicamente e não materializados. (Referência: Sobre os modos Magento )
No modo de produção , você também pode precisar
php bin/magento setup:static-content:deploy
ephp bin/magento cache:flush
, ainda não tento o modo de produção .fonte
Ok, então com base no que li em várias outras postagens e minha experiência pessoal aqui é o processo de regenerar o CSS ou qualquer Conteúdo Estático:
Isso eliminará todos os arquivos de cache / geração / etc necessários sem excluir nada do que você realmente precisa.
Isso irá recompilar os arquivos. Por último:
Após o último comando, tudo deve estar novo e atualizado, basta atualizar sua página.
----- Notas ------
1) Verifique se as permissões de arquivo e o proprietário: o grupo de usuários está definido corretamente antes de fazer isso. Talvez você precise falar sobre isso com o administrador do sistema.
2) Se o seu comando setup: upgrade falhar, ele poderá excluir os arquivos e não conseguir gravar os novos, como foi o caso devido às permissões do arquivo. Isso pode danificar seu site, apenas resolver as permissões e executar novamente o comando.
3) Não encontrei (até agora) uma maneira de recompilar apenas um tema ou arquivo específico (seria super útil se alguém encontrar uma maneira) sem escrever um script completamente personalizado
Se alguém souber de algo melhor, avise-me, porque 12 minutos de compilação de arquivos porque eu tive que fazer algumas alterações no CSS é um design extremamente ruim para os meus olhos.
--- Editar ---
O Magento 2 tem o Grunt vinculado e isso facilita a atualização de arquivos CSS / LESS infinitamente mais fácil se você reservar um tempo para configurá-lo. A maioria dos arquivos existe como arquivos .sample, basta remover a extensão .sample, configurar o arquivo themes.js na pasta / dev / tools / grunt / configs. Então, quando você precisar atualizar seus arquivos MENOS, basta executar menos um grunhido: - theme-- na linha de comando.
Recurso: http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/css-topics/css_debug.html
fonte
não se esqueça de executar os comandos
grunt exec:theme
,grunt less:theme
ondetheme
está o tema que você declarou nothemes.js
arquivo da pasta config do grunt (tudo isso está no guia do desenvolvedor) e quando você tem magento no modo desenvolvedor, não deve executar o comando estático deploy,Magento2
funciona comSymlinks
fonte
Execute estes comandos na pasta raiz do Magento :
fonte
Há uma observação importante a fazer sobre essa pergunta que a maioria das respostas não aponta especificamente. No seu caso (com a configuração que você está usando), o motivo pelo qual as alterações no CSS não são detectadas quando você gera novamente o CSS na
pub/static
pasta é que não está removendo o conteúdo dovar/view_preprocessed
diretor. Dentro deste diretório, há uma versão em cache do seu CSS que é puxada para apub/static
pasta quando você executa ophp bin/magento setup:static-content:deploy
comando.Portanto, quando você recompilar, o Magento procurará primeiro na
var/view_preprocessed
pasta o CSS em cache. Se esta pasta estiver vazia, ele procurará nos arquivos do tema e puxará esse CSS para compilação.Essas configurações são configuráveis, portanto, existem várias maneiras de chegar ao seu destino que mudarão o caminho que você precisa seguir. Mas para a solução para sua configuração específica:
Remova os arquivos da
pub/static
pasta:rm -rf pub/static/*
Remova os arquivos da
var/view_preprocessed
pasta:rm -rf var/view_preprocessed/*
Recompile a pasta estática do pub:
php bin/magento setup:static-content:deploy
Limpar cache está ativado:
php bin/magento cache:clean
Atualize o navegador.
fonte
app/etc/di.xml
arquivo di.xml ( ). Mas tive resultados mistos durante o teste. Há um pouco mais aqui na segunda resposta: magento.stackexchange.com/questions/116605/…Remover pasta que contém seu tema no
cache claro de pub / estático / front-end
Você pode usar o grunt para assistir a aplicar folhas de estilo. Leia aqui
fonte
pub/static
permissão 777php bin/magento setup:static-content:deploy
Você verá um novo css.
NOTA:
Dê permissão adequada para pastas e arquivos.
Eu espero que isso te ajude.
fonte
Você não poderia simplesmente liberar o cache estático no painel de administração e depois
fonte
Verifique se você está usando o modo de desenvolvedor.
Em seguida, execute o seguinte código:
Atualize a página do front-end. Estas etapas resolveram o meu problema.
fonte
No entanto, você pode adicionar o sinalizador
-f
ou--force
ao comando setup.Exemplo:
fonte
Vou largar minha gota de sabedoria aqui.
Eu uso um
cache_fly.sh
script bash que basicamente faz:NOTA: Adicionei um eco para me mostrar quantas horas da minha vida perdi esperando a execução. Também
./magento
é um script para fazerphp bin/magento
ou chamar a mesma coisa dentro do contêiner do docker, se o docker for usado, você pode criar o seu ou apontar para ele,php bin/magento
mas se estiver lendo isso, deve saber do que estou falando; caso contrário, execute perguntando para ajuda.fonte
Pouca adaptação para o meu caso
fonte