10

对于 Rails 3,这个问题turbo-sprockets-rails3看起来很棒。

对于 Rails 4,这是否已修复似乎存在一些争议。

我目前在生产中使用 Rails 4,似乎因为 Capistranodeploy:assets:update_asset_mtimes涉及所有资产,所以deploy:assets:precompile同样重新编译所有资产。重新编译是我的cap deploy.

理想情况下,这应该被一些基于校验和的清单系统所取代,这样只有那些实际发生变化的资产(或依赖于已经改变的资产)被重新编译。

做这个的最好方式是什么?(假设我们仍然在服务器上做,而不是在开发机器上。)

4

3 回答 3

2

这是 codeclimate 的人写的一篇很棒的博客文章。我已经看过它,但没有完成生产中的步骤。

http://blog.codeclimate.com/blog/2013/10/02/high-speed-rails-deploys-with-git/

于 2013-10-05T20:50:44.223 回答
2

这家伙很适合 Capistrano 3。对我来说效果很好。 https://coderwall.com/p/aridag

于 2014-09-10T08:40:13.200 回答
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 是否仍然使用相同的任务。

于 2014-04-16T16:59:52.320 回答