gpt4 book ai didi

ruby-on-rails - 如何在 Capistrano 部署的生产环境中对我的产品图像进行符号链接(symbolic link)?

转载 作者:数据小太阳 更新时间:2023-10-29 07:48:02 26 4
gpt4 key购买 nike

Here我收到了我的问题的解决方案,每次当我使用 Capistrano 部署我的 Spree Commerce 应用程序时,我的图像都会被删除(它们仍然存在,但文件夹名称错误)并且我必须通过管理员再次添加它们。

都在 this Google groupanswer对于这个问题,据说符号链接(symbolic link)是解决方案。

You need to make sure that your RAILS_ROOT/public/spree directory is being symlinked in from the Capistrano shared directory and not recreated every time you deploy. If this symlink isn't happening, your images will be lost on every deploy.

我已经尝试了一些方法,但我没有设法对我的图像进行符号链接(symbolic link)。

在服务器上,它们位于文件夹/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

但这行不通。我不知道我必须输入哪条共享路径。我希望有人能帮助我或提供解释链接。

最佳答案

如果您使用的是 Capistrano 3,您可以使用我在对我自己的问题的回答中解释的相同方法 here .

本质上,:shared_children 是你在 Capistrano 2 中的做法,但它被移除以支持 :linked_files:linked_dirs.

只需在您的存储库中创建您的 public/spree/ 目录,如果需要,将其添加到 .gitignore (无论它们是否被跟踪或不是 Git),然后编辑您的 deploy.rb 以使用 :linked_dirs:

set :linked_dirs, %w(public/spree)

这样,当 Capistrano 部署时,它会自动在 shared/ 中创建目录并将其链接到您当前的版本中。请记住,如果您需要文件出现在该目录中,您必须使用 rsync 等工具手动将它们复制到 shared/。这同样适用于像 database.yml 这样的文件(您将使用 :linked_files)。

关于ruby-on-rails - 如何在 Capistrano 部署的生产环境中对我的产品图像进行符号链接(symbolic link)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21837690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com