2014-09-15 2 views
2

У меня есть вопрос о версии capistrano 3.2.1. В моем файле deploy.rb я использую следующую строку:Capistrano, возвращающий неправильный путь_отдела

set :theme_path, "#{release_path}/web/app/themes/myproject" 

Переменная release_path не отображается в последней папке релиза, позволяет сказать , как должно, но это указывает на папку текущего , так что выход:

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_папка не отображается в правильной папке?

Благодарим за помощь.

+0

'' 'current_path''' является последним' '' release_путь'''. Так в чем проблема? Разве это не работает? –

ответ

6

Я думаю, что он должен работать, если вы оцениваете ваш 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.

+0

Спасибо за подсказку, теперь я получаю сообщение об ошибке: ArgumentError: неправильное количество аргументов (1 для 2) – janhocevar

+0

@janhocevar, извините, DSL немного изменился между Cap 2 и 3. Я обновил свой ответ. –

Смежные вопросы