清理生产服务器rails 3上的shared / assets文件夹

时间:2013-01-04 18:07:12

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

我在/home/name/apps/myapp/shared/assets"

上的生产服务器上有我的资产

我看到这个目录正在快速增长。现在重量文件夹是40 Mb,但我目前的资产重量为3.2 mb

我的问题是如何使用capistrano自定义任务清理旧资产的此文件夹。我制作最后一个cap deploy

时,我只需要最后一个资产

编辑:

预编译的Capistrano任务:

namespace :assets do
    task :precompile, :roles => :web, :except => { :no_release => true } do
      from = source.next_revision(current_revision)
      if capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets/ app/assets/ | wc -l").to_i > 0
        run_locally("rm -rf public/assets/*") 
        run_locally "bundle exec rake assets:precompile"
        find_servers_for_task(current_task).each do |server|
         run_locally "rsync -vr --exclude='.DS_Store' --recursive --times --rsh=ssh --compress --human-readable --progress public/assets #{user}@#{server.host}:#{shared_path}/"
        end
      else
        puts.info "Skipping asset pre-compilation because there were no asset changes"
      end
    end
  end

我是生产服务器上的预编译资产,但我已更改为使用rsync将资产预编译到本地计算机。

1 个答案:

答案 0 :(得分:0)

尝试在rsync命令中使用--delete

来自rsync手册页:--delete delete extraneous files from dest dirs.