Ruby on rails 使用capistrano部署并使用ruby on rails上载目录

Ruby on rails 使用capistrano部署并使用ruby on rails上载目录,ruby-on-rails,capistrano,Ruby On Rails,Capistrano,我使用Capistrano开发我的网站。 遇到的问题是,每次我在生产环境中使用capistrano部署我的站点时,它都会让我无法将图像上传到生产环境中,这会把我压垮 当我在生产中制作一个déployment时,如何让我将图片上传到生产中?你想确保在deploy.rb中设置:linked_dirs,例如,对于我的一个站点,回形针上传到public/system目录,所以我需要确保我将该目录符号化: set :linked_dirs, ['log', 'tmp/pids', 'tmp/cache',

我使用Capistrano开发我的网站。 遇到的问题是,每次我在生产环境中使用capistrano部署我的站点时,它都会让我无法将图像上传到生产环境中,这会把我压垮


当我在生产中制作一个déployment时,如何让我将图片上传到生产中?

你想确保在deploy.rb中设置:linked_dirs,例如,对于我的一个站点,回形针上传到public/system目录,所以我需要确保我将该目录符号化:

set :linked_dirs, ['log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system']
编辑:对我来说,这会在
[cap deploy dir]/current/public/system
中创建一个符号链接,指向
[cap deploy dir]/shared/public/system

如果您在再次部署之前不知道,请检查您的
[cap deploy dir]/releases
,您应该找到一些旧部署,以便能够恢复上载


从gemgithub页面():

符号链接

您可能希望将Rails共享文件和目录(如log、tmp和public/uploads)进行符号链接。确保通过设置“链接的\u目录”和“链接的\u文件”选项来启用它:

# deploy.rb
set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', 'public/system', 'public/uploads')
set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')

使用capistrano部署时,每次都会创建新版本的代码。 每个版本实际上都是一个单独的文件夹,这就是为什么每次部署都要一次又一次地上传图像的原因

您可以对目录进行符号链接,以便从公共位置向每个版本的代码提供图像

set :linked_dirs, fetch(:linked_dirs, []).push('bin', 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle')