2011-02-11 5 views
9

Avevo un'app funzionante, aggiunto Nokogiri, per analizzare un po 'di xml, funziona bene localmente.L'app di Heroku si arresta in modo anomalo, i registri dicono "Nessun file da caricare - nokogiri (LoadError)"

mio Gemfile comprende: gem 'nokogiri'

mi sono imbattuto bundle install e verificato il mio Gemfile.lock comprende DEPENDENCIES ... nokogiri

Nella mia classe Controller ho aggiunto (non ha ancora thinki dovuto ma ha ottenuto un errore a livello locale se io non ha ancora):

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

quando uso il mio browser per ottenere l'url in MydealController che utilizza nokogiri doc = Nokogiri::XML(getresult) Heroku crash.

heroku logs mostra questo errore No such file to load -- nokogiri (LoadError)

Guardando a quello che succede quando ho git push heroku non vedo nokogiri sulla lista di molti molte gemme che vengono installati. Heroku dice che la spinta andava bene, ma nokogiri non è elencato e ottengo l'errore di cui sopra ...

+0

Non hai aggiunto Nokogiri al 'Gemfile' della tua applicazione? –

+2

seconda riga del mio testo "My Gemfile include: gem 'nokogiri'" – jpwynn

+0

Ho visto un post (con nessuna risposta) su alcuni blog suggerendo che potrebbe esserci qualche problema dove sto usando windows localmente, ho installato bundle localmente, e poi heroku barfs sulla gemma per qualche motivo. sembra però poco plausibile. – jpwynn

risposta

1

Sembra che quando si utilizza Windows Gemfile.lock conterrà versione di nokogiri gemma specifica per le finestre, soluzione è rimuovere Gemfile.lock e spingere a Heroku.

Maggiori informazioni su questo argomento here

0

Appena avuto lo stesso problema - devi eseguire bundle install per farlo aggiungere allo Gemfile.lock che heroku guarda per trovare dipendenze disinstallate.

+1

sì, l'ho fatto e ho verificato che era nel gemfile.lock, come menzionato nelle domande. sembra essere un problema con il mio ambiente di sviluppo di Windows. sospiro. – jpwynn

1

vostra missione si dovrebbe scegliere di accettarla.

Verificare:

  1. nokogiri è in Gemfile.lock
  2. Gemfile.lock si impegna a git
  3. si preme il commit che ha nokogiri in Gemfile.lock di Heroku

In bocca al lupo! Questo messaggio si autodistruggerà tra 10 secondi ...

0

tenta di rimuovere require 'nokogiri' dal regolatore.

Funziona per me.