Ruby on rails 3.1 使用Capistrano预编译资产时显示加载错误';部署/资产';

Ruby on rails 3.1 使用Capistrano预编译资产时显示加载错误';部署/资产';,ruby-on-rails-3.1,capistrano,asset-pipeline,Ruby On Rails 3.1,Capistrano,Asset Pipeline,我正在使用rails 3.1.0,并试图将Capistrano设置为预编译资产。Capistrano v2.8.0在Capfile中有“load‘deploy/assets’”。但当我运行“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/ass

我正在使用rails 3.1.0,并试图将Capistrano设置为预编译资产。Capistrano v2.8.0在Capfile中有“load‘deploy/assets’”。但当我运行“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)后,它神奇地开始工作。

你能证明你正在使用的
cap
确实在捆绑包中吗


请共享您的Gemfile和Capfile,可能“cap”不在捆绑包中,因此它正在加载以前的版本,请确保使用“bundle exec”(以确保使用正确的capistrano)

您能证明您正在使用的
cap
确实在捆绑包中吗


请共享您的Gemfile和Capfile,可能“cap”不在捆绑包中,因此它正在加载以前的版本,请确保使用“bundle exec”运行(确保使用正确的capistrano)

,因为我目前遇到了相同的问题,我注意到,在使用git checkout切换分支后,将RVM与特定于项目的.rvmrc一起使用并没有重新加载。结果是使用了系统范围的capistrano版本2.6.0,而不是项目特定的capistrano版本2.9.0。这会导致相同的错误消息“没有要加载的文件--deploy/assets(LoadError)”


从项目路径中取出一张简单的cd,然后再放入项目路径,就解决了我的问题。

由于我目前遇到了相同的问题,我注意到在使用git checkout切换分支后,将RVM与特定于项目的.rvmrc一起使用并没有重新加载。结果是使用了系统范围的capistrano版本2.6.0,而不是项目特定的capistrano版本2.9.0。这会导致相同的错误消息“没有要加载的文件--deploy/assets(LoadError)”


从项目路径中取出一张简单的cd,然后再放入项目路径中,我就解决了这个问题。

解决这个问题的方法是安装最新版本的capistrano(
gem install capistrano

对我来说,解决这个问题的办法是安装最新版本的capistrano(
gem install capistrano

谢谢,我不知道这个“bundle exec”选项。这是bundler的一个要求,否则您将使用系统范围内安装的Cap,当使用“bundle exec”时,它将加载您的文件中指定的Cap。另一种选择是使用bundle
--binstubs
选项,并相应地修改您的
$PATH
,请参见此处了解更多信息:谢谢,我不知道此“bundle exec”选项。这是bundler的一项要求,否则您将使用系统范围内安装的Cap,当使用“bundle exec”时,它将加载您的文件中指定的一个。另一种方法是使用bundle
--binstubs
选项,并相应地修改您的
$PATH
,有关更多信息,请参见此处:更新您的bundle或获得更新的capistrano gem所需的任何内容。可能是因为运行了系统ruby.update bundle,或者是为了获得更新的capistrano gem所需要的任何东西。可能是因为运行了ruby系统。