ruby - Capistrano 返回错误的 release_path

标签 ruby gruntjs capistrano bower capistrano3

我对 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/

相关文章:

ruby - 如何等待并稍后发送对 HTTP 请求的响应?

gruntjs - 如何使用 yeoman 生成器将多个文件作为模板处理?

ruby-on-rails - 自动将文件部署到 Amazon S3?

ruby-on-rails - Capistrano 和 Corkscrew PATH 错误

javascript - 咕噜+萨斯: output 2 css files at the same time

ruby-on-rails - Rails 5 capistrano Assets

ruby - 没有这样的文件要加载——memcache 但它已安装?

ruby-on-rails - 使用 Ruby 将 MongoDB _id 转换为 ObjectID 对象以检索唯一记录

ruby-on-rails - Resque 可以并行运行作业吗?

javascript - 你能在 Grunt 任务中将 Grunt 变量传递给 JavaScript 函数吗?