Capistrano预编译资产显示加载“部署/资产”错误

问题描述:

我正在使用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的)。

您能否证明您使用的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/ –

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

一个简单的cd离开了项目路径,再次进入了项目路径,为我解决了这个问题。

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

+0

更新你的包或任何它需要获得更新的capistrano宝石。可能是由于运行系统ruby。 – Matt