对于Rails 3,this question和turbo-sprockets-rails3看起来很棒。
对于Rails 4,似乎some controversy是否已修复此问题。
我目前正在使用Rails 4,似乎因为Capistrano deploy:assets:update_asset_mtimes
触及所有资产,deploy:assets:precompile
同样会重新编译所有资产。重新编译是我cap deploy
中最长的一步。
理想情况下,这应该由一些基于校验和的清单系统替换,以便只重新编译那些已经实际更改(或依赖于已更改的资产)的资产。
最好的方法是什么? (假设我们仍在服务器上,而不是开发机器上。)
答案 0 :(得分:2)
这是来自codeclimate的人们关于此的一篇很棒的博客文章。我已经看过了它,但没有完成生产中的步骤。
http://blog.codeclimate.com/blog/2013/10/02/high-speed-rails-deploys-with-git/
答案 1 :(得分:2)
这个家伙适合Capistrano 3.适合我。 https://coderwall.com/p/aridag
答案 2 :(得分:1)
https://github.com/capistrano/capistrano/issues/478讨论了这个问题 似乎没问题的解决方案就是停用触摸功能。在上面的问题中,有人谈到了一个配置变量用于此,但我找不到任何代码引用。相反,我们现在只是覆盖任务。
namespace :deploy do
namespace :assets do
task :update_asset_mtimes, :roles => lambda { assets_role }, :except => { :no_release => true } do
end
end
end
注意:这仅适用于capistrano版本2.我不知道版本3是否仍然使用相同的任务。