我正在使用Capistrano部署Ruby on Rails和NodeJS应用程序。每次部署时都会删除uploads文件夹。
这在几个地方出现了,但似乎不起作用:
# Keep File Uploads
task :symlink_uploads do
run "ln -nfs #{shared_path}/rails/uploads #{release_path}/rails/public/uploads"
end
after 'deploy:update_code', 'deploy:symlink_uploads'回购:
repo:
/node
/rails谢谢!
发布于 2012-05-17 05:38:17
确保删除现有的公共/上传文件夹,将-f传递给ln并不包括删除目标目录(或者至少对我来说还没有这样做)
我的symlink目录任务通常如下所示
task :symlink_uploads do
run "rm -rf #{release_path}/rails/public/uploads} && ln -nfs #{shared_path}/rails/uploads #{release_path}/rails/public/uploads"
end显然,要确保在公共/上传的签入版本中没有任何您需要的东西!
发布于 2012-05-17 05:47:18
对于这个问题,还有另一个解决方案。您可以将您的uploads目录添加到Capistrano的shared_children中,它将自动完成所有的魔术操作。您可以在以下答案中找到更多详细信息:https://stackoverflow.com/a/9710542/835935
发布于 2012-05-17 05:05:21
你试过了吗
after 'deploy:update_code', ':symlink_uploads'您的:symlink_uploads任务不在名称空间中,因此请执行上述操作或将其放入名称空间中
namespace :deploy do
task :symlink_uploads do
# ...
end
endhttps://stackoverflow.com/questions/10586548
复制相似问题