如何在本地预编译并添加到存储库时清理旧的Rails资产?

时间:2013-12-05 08:25:54

标签: ruby-on-rails deployment ruby-on-rails-4 capistrano

我使用Capistrano部署我的Rails 4应用程序。在服务器上预编译资产非常慢,因此我使用RAILS_ENV=production bundle exec rake assets:precompile在开发中手动预编译它并将其添加到我的git repo中。

我面临的问题是assets:precompile任务不会删除旧资产。因此,我的公共资产中有application-<manifest code>.cssapplication-<manifest-code>.js的多个副本。

Capistrano有deploy:assets:clean_expired任务,但我不知道如何在我的案例中复制它。我已经看到其他方法使用capistrano任务来预编译资产并对它们进行rsync。这个链接 - http://keighl.com/post/fast-rails-assets-precompile-capistrano/ - 使用turbo-sprockets-rails3 gem为Rails 3提供了一种方法。

此处有类似的问题 - Do I have to run rake assets:clean before rake assets:precompile?Confusion about rake assets:clean / cleanup on the asset pipeline in rails

如何使其适应Rails 4?

1 个答案:

答案 0 :(得分:1)

这对我来说效果很好 - https://gist.github.com/mishrarohit/7802260它使用git修订历史来检查是否对资产进行了任何更改。如果我们可以使用清单,那将会更好。