1

我在生产服务器上有我的资产/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 将资产预编译到本地机器。

4

1 回答 1

0

尝试--delete在您的 rsync 命令中使用。

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

于 2013-01-04T20:57:16.427 回答