使用capistrano部署并使用ruby在rails上传目录

时间:2015-07-06 19:50:06

标签: ruby-on-rails capistrano

我使用Capistrano代替我的网站。 遇到的问题是,每次我在制作中使用capistrano部署我的网站时,它都会让我不会将图像上传到制作中,这会让我大吃一惊。

当我在制作中进行调整时,如何让我将图片上传到制作中?

2 个答案:

答案 0 :(得分:0)

您要确保在deploy.rb中设置:linked_dirs,例如对于我的一个网站回形针上传到公共/系统目录,所以我需要确保我符号链接那个:

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您应该找到一些旧部署,以便恢复上传。

来自gem github页面(https://github.com/capistrano/rails):

<强>符号链接

您可能希望使用符号链接Rails共享文件和目录,例如log,tmp和public / uploads。确保通过设置linked_dirs和linked_files选项启用它:

# 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')

答案 1 :(得分:0)

使用capistrano进行部署时,每次创建新版本的代码时。 每个版本实际上都是一个单独的文件夹,这是您必须为每个部署反复上传图像的原因。

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

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