Pergunta

Alguém poderia me explicar o que o comando rake assets:clean realmente faz?Infelizmente os guias Rails não mencionam isso.Existe também o comando rake assets:cleanup.Qual é a diferença?

Além disso, alguém poderia me dizer quando devo executar rake assets:precompile na produção.Devo executá-lo no console do servidor depois de implantar todos os meus arquivos de aplicativo em meu servidor de produção?Ou eu precompile na minha máquina local e, em seguida, faço uma implantação de todos os arquivos?

Obrigado a todos

Foi útil?

Solução

Nota: Esta resposta é específica do trilho 3.Para o rails 4 e posterior, veja outras respostas aqui.

Se você pré-compilar em sua máquina local, poderá enviar esses ativos gerados para o repositório e prosseguir com a implantação.Não há necessidade de compilá-los na máquina de produção.

Mas isso apresenta um problema: agora, quando você altera os arquivos de origem (coffescript / scss), o aplicativo não seleciona as alterações, porque, em vez disso, servirá arquivos pré-compilados.rake assets:clean exclui esses arquivos pré-compilados.

Em meus projetos, os ativos são pré-compilados como parte da implantação.Capistrano torna isso muito fácil.

Além disso, nunca ouvi falar em rake assets:cleanup.

Outras dicas

Execute rake assets:clobber para realmente limpar os ativos. http://www.dixis.com/?p=735

A resposta de Sergio estava completamente correta no Rails 3. rake assets:clean excluiu todos os ativos que haviam sido pré-compilados no diretório public/assets.

No Rails 4, você executa rake assets:clobber para fazer a mesma coisa.

Se você executar rake assets:precompile com a seguinte configuração (por padrão, ativada na preparação e produção):

# config/environments/production.rb
config.assets.digest = true

Seus recursos compilados recebem um carimbo de data / hora.Isso significa que você pode compilar seus novos ativos enquanto deixa os antigos no lugar.Normalmente, você deseja fazer isso na produção para que seu site ainda acesse os arquivos antigos enquanto executa o precompile para criar seus novos arquivos (porque você adicionou um novo css / javascript).Agora você deseja se livrar dos arquivos antigos que não estão mais em uso.O clean remove as versões antigas dos ativos pré-compilados, deixando os novos ativos no lugar.

rake assets:clean remove ativos compilados.Ele é executado por cap deploy:assets:clean para remover ativos compilados, geralmente de um servidor remoto.

cap deploy:clean remove versões antigas, geralmente de um servidor remoto.Não é rake assets:clean

rake!= cap

rake assets:clean agora é executado por cap deploy:cleanup_assets.Adicione require 'capistrano/rails/assets' ao seu Capfile e você obterá esta tarefa cap.Minha versão capistrano é v3.2.1.

limpe os arquivos não rastreados com git clean -f para arquivos e git clean -f -d para diretórios

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top