1

実稼働サーバーにアセットがあります/home/name/apps/myapp/shared/assets"

このディレクトリが急速に成長しているように見えます。現在、ウェイト フォルダーは 40 Mb ですが、現在のアセットのウェイトは 3.2 MB です。

私の質問は、カピストラーノ カスタム タスクを使用して、この古いアセットのフォルダーをどのようにクリーンアップできるかです。最後のアセットを作成するときは、最後のアセットのみが必要です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

--deletersync コマンドで使用してみてください。

rsync の man ページから:--delete delete extraneous files from dest dirs.

于 2013-01-04T20:57:16.427 に答える