2013-01-04 110 views
1

我有/home/name/apps/myapp/shared/assets"干净共享/资产对生产服务器导轨夹3

我看到,因为这目录正在迅速增长的生产服务器上我的资产。现在的体重文件夹是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。

+0

您目前如何部署这些资产?你是否预编译它们并将它们添加到存储库?你预先编译它们并且rsync它们吗?当你说你的'现有资产'只有3.2 MB时,你指的是你的开发'public/assets'文件夹还是你的'app/assets'文件夹? – theIV

+0

Yeahh。我更新了我的问题。我是在实时服务器生产预编译的资产,但现在我已经更改为本地计算机上的预编译和rsync上传后。我指的是我的公众/资产的重量是3.2 MB。非常感谢你! – hyperrjas

+0

你有没有尝试在你的rsync任务中添加'--delete'?从rsync手册页:' - 删除dest目录下的无关文件。 – theIV

回答

0

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

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

+0

如何才能知道涉及旧版本旧版本的资产?有可能保留默认数量的资产,例如部署版本。 – hyperrjas