我有/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。
您目前如何部署这些资产?你是否预编译它们并将它们添加到存储库?你预先编译它们并且rsync它们吗?当你说你的'现有资产'只有3.2 MB时,你指的是你的开发'public/assets'文件夹还是你的'app/assets'文件夹? – theIV
Yeahh。我更新了我的问题。我是在实时服务器生产预编译的资产,但现在我已经更改为本地计算机上的预编译和rsync上传后。我指的是我的公众/资产的重量是3.2 MB。非常感谢你! – hyperrjas
你有没有尝试在你的rsync任务中添加'--delete'?从rsync手册页:' - 删除dest目录下的无关文件。 – theIV