我正在使用带有资源和载波的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/