我使用Capistrano代替我的网站。 遇到的问题是,每次我在制作中使用capistrano部署我的网站时,它都会让我不会将图像上传到制作中,这会让我大吃一惊。
当我在制作中进行调整时,如何让我将图片上传到制作中?
答案 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')