2011-09-23 192 views
0

我正在使用rails 3.1.0並試圖設置Capistrano來預編譯資產。 Capistrano v2.8.0在Capfile中「加載」部署/資產「」。但是,當我運行「帽部署」它顯示了以下錯誤:Capistrano預編譯資產顯示加載「部署/資產」錯誤

cap deploy 
/usr/lib/ruby/1.8/capistrano/configuration/loading.rb:183:in `find_file_in_load_path': no such file to load -- deploy/assets (LoadError) 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:171:in `load_from_file' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:89:in `load' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:86:in `load' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:86:in `each' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:86:in `load' 
from Capfile:3:in `load' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:172:in `load_from_file' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:89:in `load' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:86:in `load' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:86:in `each' 
from /usr/lib/ruby/1.8/capistrano/configuration/loading.rb:86:in `load' 
from /usr/lib/ruby/1.8/capistrano/cli/execute.rb:64:in `load_recipes' 
from /usr/lib/ruby/1.8/capistrano/cli/execute.rb:64:in `each' 
from /usr/lib/ruby/1.8/capistrano/cli/execute.rb:64:in `load_recipes' 
from /usr/lib/ruby/1.8/capistrano/cli/execute.rb:30:in `execute!' 
from /usr/lib/ruby/1.8/capistrano/cli/execute.rb:14:in `execute' 
from /usr/bin/cap:4 

UPDATE

奇蹟般地開始工作後,我重新啓動我的電腦(Ubuntu的)。

回答

1

您能否證明您使用的cap確實在捆綁中?

請分享您的Gemfile和您的Capfile,可能是因爲「cap」不在捆綁中,所以它加載了以前的版本,一定要用「bundle exec」運行(以確保使用正確的capistrano )

+0

謝謝,我不知道這個「bundle exec」選項。 – Evgenii

+1

這是bundler的要求,否則你使用全系統安裝的Cap,當使用'bundle exec'時它會加載你的gemfile中指定的那個。另一種方法是使用bundle'--binstubs'選項,並相應地修改'$ PATH',參見這裏獲取更多信息:http://blog.davidchelimsky.net/2011/07/18/stop-typing-bundle -exec/ –

1

由於我目前遇到同樣的問題,我注意到在使用git checkout切換分支後,沒有重新使用RVM和項目特定的.rvmrc。結果是系統範圍的capistrano版本2.6.0被使用,而不是項目特定的capistrano版本2.9.0。這導致相同的錯誤消息'沒有這樣的文件加載 - 部署/資產(LoadError)'。

一個簡單的cd離開了項目路徑,再次進入了項目路徑,爲我解決了這個問題。

1

這個問題對我而言有效的是安裝了最新版本的capistrano(gem install capistrano)。

+0

更新你的包或任何它需要獲得更新的capistrano寶石。可能是由於運行系統ruby。 – Matt