Heroku应用程序崩溃,日志说“没有这样的文件加载 - nokogiri(LoadError)”

时间:2011-02-11 01:39:55

标签: ruby-on-rails-3 heroku nokogiri

我有一个工作的应用程序,添加了Nokogiri,解析一些xml,在本地运行良好。

我的Gemfile包括:gem 'nokogiri'

我运行了bundle install并验证了我的Gemfile.lock包含DEPENDENCIES ... nokogiri

在我的控制器类中,我添加了(没想到我必须在本地得到错误,如果我没有):

class MydealController < ApplicationController
  require 'rubygems'
  require 'open-uri'
  require 'nokogiri'

当我使用浏览器获取MydealController中使用nokogiri doc = Nokogiri::XML(getresult) Heroku崩溃的网址时。

heroku logs显示此错误No such file to load -- nokogiri (LoadError)

看看当我git push heroku时会发生什么我没有在许多安装的宝石列表中看到nokogiri。 Heroku说推进很好,但nokogiri没有列出,我得到上述错误......

5 个答案:

答案 0 :(得分:1)

你的任务应该选择接受它。

确保:

  1. nokogiri在Gemfile.lock
  2. Gemfile.lock已提交给git
  3. 您将Gemfile.lock中具有nokogiri的提交推送到Heroku
  4. 祝你好运!此消息将在10秒内自毁...

答案 1 :(得分:1)

使用Windows时Gemfile.lock似乎包含特定于Windows的nokogiri gem版本,解决方案是删除Gemfile.lock 并推送到heroku。

有关此主题的更多信息here

答案 2 :(得分:0)

遇到同样的问题 - 您必须运行bundle install才能将其添加到heroku查找的Gemfile.lock中以查找已卸载的依赖项。

答案 3 :(得分:0)

这可能有助于理解原因: http://devcenter.heroku.com/articles/ps

确实删除Gemfile.lock可能有所帮助。所有其他编译的gem将导致isseu。最好的方法是询问Heroku的支持。

只找到这篇文章: http://ganeshprasadsr.blogspot.com/2010/10/installing-nokogiri-for-rails-3-app-on.html

答案 4 :(得分:0)

尝试从控制器中删除require 'nokogiri'

它对我有用。