2011-07-03 3 views
0

Je suis nouveau à ruby, git et heroku. J'essayais de construire une application Hello World simple et de la déployer sur heroku. Je vois l'erreur suivante dans les journaux lorsque j'essaie d'accéder au site en utilisant l'URL fournie par heroku. Pourriez-vous me dire ce que je ne fais pas bien?Problème déploiement simple application sinatra ruby ​​sur heroku

2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/builder.rb:46:in `instance_eval' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/rack-1.1.0/lib/rack/builder.rb:46:in `initialize' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /home/heroku_rack/heroku.ru:1:in `new' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /home/heroku_rack/heroku.ru:1:in `<main>' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/rack/adapter/loader.rb:36:in `eval' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/controllers/controller.rb:175:in `load_rackup_config' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/rack/adapter/loader.rb:36:in `load' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/controllers/controller.rb:65:in `start' 
    2011-07-03T01:15:06+00:00 app[web.1]: from /usr/ruby1.9.2/lib/ruby/gems/1.9.1/gems/thin-1.2.6/lib/thin/runner.rb:177:in `run_command' 
    2011-07-03T01:15:06+00:00 heroku[web.1]: Process exited 
    2011-07-03T01:15:07+00:00 heroku[web.1]: State changed from starting to crashed 

fichier config.ru

require 'myapp2' 
    run Sinatra::Application 

myapp2.rb

require 'rubygems' 
    require 'sinatra' 

    get '/' do 
    'Hello World' 
    end 

Répondre

4

Vous êtes absent haut de la trace de la pile, mais il semble que le problème est le require.

En config.ru changement

require 'myapp2' 

à

require './myapp2' 

ou

require File.expand_path("../myapp2", __FILE__) 

Ruby 1.9.2 n'a plus le répertoire courant dans le trajet de charge, donc require 'myapp2' n'est pas capable de trouver votre fichier d'application qui se trouve dans le même répertoire.

Si cela fonctionne sur votre machine locale, mais pas sur Heroku, alors vous utilisez probablement une version différente de Ruby, probablement 1.8.7. Ce serait une bonne idée d'installer localement la version 1.9.2 pour que vous utilisiez la même version en développement et en production. Vous pouvez également changer la pile Heroku que vous utilisez; jetez un oeil à the Heroku stack docs

+0

Merci beaucoup. Je vais essayer cela et vous le faire savoir. – Karthik

Questions connexes