Erw*_*ers 3 ruby symlink capistrano ruby-on-rails spree
在这里,我收到了一个解决我的问题的方法,每次当我使用Capistrano部署我的Spree Commerce应用程序时,我的图像被删除(它们仍然存在,但文件夹名称错误),我必须通过管理员再次添加它们.
在这个Google小组和问题的答案中,都说symlinking是解决方案.
您需要确保从Capistrano共享目录中符号链接RAILS_ROOT/public/spree目录,而不是每次部署时都重新创建.如果未发生此符号链接,则每次部署时图像都将丢失.
我尝试了一些东西,但我没有设法将符号链接到我的图像.
在服务器上,它们位于文件夹/ public/spree/products中.我试过的是这个:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :symlink_shared do
run "ln -nfs #{shared_path}/shared/spree/ #{release_path}/public/spree/""
end
end
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我不知道我必须输入哪条共享路径.我希望有人可以帮助我或提供解释链接.
如果你正在使用Capistrano的3,你可以使用我的回答解释我自己的问题同样的方法在这里.
从本质上讲,:shared_children你是如何在Capistrano 2中做到这一点的,但是它被取消了并支持:linked_files和:linked_dirs.
只需public/spree/在您的存储库中创建您的目录,.gitignore如果您需要将其添加(如果Git跟踪它们并不重要),然后编辑您deploy.rb的使用:linked_dirs:
set :linked_dirs, %w(public/spree)
Run Code Online (Sandbox Code Playgroud)
这样,当Capistrano部署它时,它会自动创建目录shared/并将其链接到当前版本.请记住,如果您需要在该目录中存在文件,则必须shared/使用类似的工具手动复制它们rsync.对于像database.yml您这样使用的文件也是如此:linked_files.
| 归档时间: |
|
| 查看次数: |
1500 次 |
| 最近记录: |