【问题标题】:Precompiling assets with Capistrano shows error on load 'deploy/assets'使用 Capistrano 预编译资产在加载“部署/资产”时显示错误
【发布时间】:2011-11-23 17:04:22
【问题描述】:

我正在使用 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) 后它神奇地开始工作。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我不知道这个“bundle exec”选项。
    • 这是 bundler 的要求,否则你使用系统范围内安装的 Cap,当使用 'bundle exec' 时,它会加载你 gemfile 中指定的那个。另一种方法是使用捆绑包--binstubs 选项,并相应地修改您的$PATH,请参阅此处了解更多信息:blog.davidchelimsky.net/2011/07/18/stop-typing-bundle-exec
    【解决方案2】:

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

    一个简单的 cd 退出项目路径并再次进入项目路径为我解决了问题。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 更新您的捆绑包或获取更新的 capistrano gem 所需的任何东西。可能是因为运行了系统 ruby​​。
      猜你喜欢
      • 2014-02-05
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      相关资源
      最近更新 更多