使用Capistrano预编译资产会在加载'deploy / assets'时显示错误

时间:2011-09-23 13:55:35

标签: ruby-on-rails-3.1 capistrano asset-pipeline

我正在使用rails 3.1.0并尝试设置Capistrano来预编译资产。 Capistrano v2.8.0在Capfile中有“加载'部署/资产'”。但是当我运行“cap deploy”时,它会显示以下错误:

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

更新

我重新启动电脑(Ubuntu)后神奇地开始工作。

3 个答案:

答案 0 :(得分:1)

您能否证明您正在使用的cap确实在捆绑中?

请分享你的Gemfile和你的Capfile,很可能是“cap”不在捆绑中,所以它正在加载以前的版本,一定要运行“bundle exec”(以确保使用正确的capistrano)

答案 1 :(得分:1)

当我遇到同样的问题时,我注意到在使用git checkout切换分支后,没有重新加载使用RVM和特定于项目的.rvmrc。结果是使用系统范围的capistrano版本2.6.0而不是项目特定的capistrano版本2.9.0。这导致相同的错误消息“没有这样的文件加载 - 部署/资产(LoadError)”。

从项目路径中再次进入项目路径的简单cd解决了我的问题。

答案 2 :(得分:1)

这个问题对我有用的是安装最新版本的capistrano(gem install capistrano)。