Ruby on rails 如何防止capistrano覆盖用户在自己文件夹中上传的文件?
我正在使用Capistrano和git部署RoR应用程序。我有一个文件夹,每个用户都有自己的文件夹。当用户上载或保存文件时,它会保存在自己的文件夹中 当我将新版本的代码部署到服务器时,用户文件和文件夹将被我的开发人员机器上的内容覆盖 有没有办法像我们在git中那样忽略capistrano中的一些文件夹?本文建议使用符号链接并将用户文件存储在共享文件夹中。但这是一个老帖子,所以我想知道现在是否有更好的方法 还有,有人知道有什么好的屏幕广播/教程可以推荐使用RoR+git+capistrano吗Ruby on rails 如何防止capistrano覆盖用户在自己文件夹中上传的文件?,ruby-on-rails,git,capistrano,Ruby On Rails,Git,Capistrano,我正在使用Capistrano和git部署RoR应用程序。我有一个文件夹,每个用户都有自己的文件夹。当用户上载或保存文件时,它会保存在自己的文件夹中 当我将新版本的代码部署到服务器时,用户文件和文件夹将被我的开发人员机器上的内容覆盖 有没有办法像我们在git中那样忽略capistrano中的一些文件夹?本文建议使用符号链接并将用户文件存储在共享文件夹中。但这是一个老帖子,所以我想知道现在是否有更好的方法 还有,有人知道有什么好的屏幕广播/教程可以推荐使用RoR+git+capistrano吗 谢
谢谢。您应该将用户文件夹移到Capistrano的
发行版
目录之外。通常的方法是让Capistrano创建指向应跨部署保留的目录的符号链接
下面是我的Rails博客应用程序的config/deploy.rb
中的一个示例,其中博客帖子中的下载文件和帖子中使用的图像存储在共享
目录中:
after :deploy, 'deploy:link_dependencies'
namespace :deploy do
desc <<-DESC
Creates symbolic links to configuration files and other dependencies
after deployment.
DESC
task :link_dependencies, :roles => :app do
run "ln -nfs #{shared_path}/public/files #{release_path}/public/files"
run "ln -nfs #{shared_path}/public/images/posts #{release_path}/public/images/posts"
end
end
deploy之后,“deploy:link\u依赖项”
名称空间:deploydo
这太晚了,但我遇到了这个问题。我使用rails 5和capistrano 3.6。我通过创建共享文件夹的符号链接解决了这个问题
您的deploy.rb中可能已经有这一行了
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle}
如果要将用户的图像保存在public/images/user_images中并将其符号链接到共享文件夹,请添加文件夹名称和空格(如下所示):
现在运行cap production deploy
,您应该能够访问共享文件夹中的图像。谢谢John,现在就是这样了。
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/images/user_images}