我对 Capistrano 3.2.1 版有疑问。在我的 deploy.rb 文件中,我使用了以下行:
set :theme_path, "#{release_path}/web/app/themes/myproject"
变量 release_path 没有显示到最新发布的文件夹,可以说是201409151420,但它指向文件夹current,所以输出是:
DEBUG[68031037] Command: cd /var/www/myproject/current/web/app/themes/myproject && ( WP_ENV=staging /usr/bin/env npm install --silent )
输出应该是:
DEBUG[68031037] Command: cd /var/www/myproject/201409151420/web/app/themes/myproject && ( WP_ENV=staging /usr/bin/env npm install --silent )
有谁知道,为什么 release_path 变量没有显示到正确的文件夹?
感谢您的帮助。
最佳答案
我认为如果你懒惰地评估你的 theme_path
它应该有效:
set(:theme_path) { "#{release_path}/web/app/themes/myproject"}
set :theme_path, lambda { "#{release_path}/web/app/themes/myproject" }
如果未定义 release_path
(请参阅 dsl/paths.rb),您看到的值是预期的:
def release_path
fetch(:release_path, current_path)
end
也就是说,release_path
的默认值为current_path
。
关于ruby - Capistrano 返回错误的 release_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25850045/