我正在使用带有资源和载波的Rails 3.2上传一些图像,它们存储在/ public / uploads / photo / ..
但是当我执行cap:deploy(使用capistrano)时,我的当前目录应用程序不包含我上传的文件,因为capistrano创建了新版本...。

===更新===

毕竟我用这个:

内部:deploy命名空间

   task :symlink_uploads do
     run "ln -nfs #{shared_path}/uploads  #{release_path}/public/uploads"
   end

之后:
after 'deploy:update_code', 'deploy:symlink_uploads'

===重新更新===

@tristanm的解决方案是解决此问题的最佳方法。

最佳答案

这个怎么样:

# config/deploy.rb
set :shared_children, shared_children + %w{public/uploads}
:shared_children默认为%w(public/system log tmp/pids),因此我们只是在扩展此列表。

编辑:

不要忘记在更改cap deploy:setup后运行:shared_children,以便在shared下创建新目标。

编辑Capistrano 3:

Capistrano 3使用linked_dirs设置,并且不再将public/system指定为默认值。
set :linked_dirs, fetch(:linked_dirs) + %w{public/system public/uploads}

关于ruby-on-rails - Capistrano的载波文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9043662/

10-11 03:01