Проблема развертывания простого приложения ruby ​​sinatra на heroku - PullRequest
0 голосов
/ 03 июля 2011

Я новичок в ruby, git и heroku. Я пытался создать простое приложение Hello World и развернуть его на heroku. Я вижу следующую ошибку в журналах, когда пытаюсь получить доступ к сайту с помощью URL, предоставленного 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

файл config.ru

    require 'myapp2'
    run Sinatra::Application

myapp2.rb

    require 'rubygems'
    require 'sinatra'

    get '/' do
    'Hello World'
    end

1 Ответ

4 голосов
/ 04 июля 2011

Вы пропускаете вершину трассировки стека, но похоже, что проблема заключается в require.

In config.ru, изменяющем

require 'myapp2'

на

require './myapp2'

или

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

Ruby 1.9.2 больше не имеет текущего каталога в пути загрузки, поэтому require 'myapp2' не может найти файл приложения, который находится в том же каталоге.

Если это работает на вашем локальном компьютере, но не на Heroku, то вы, вероятно, используете другую версию Ruby, вероятно, 1.8.7.Было бы неплохо установить 1.9.2 локально, чтобы вы использовали одну и ту же версию при разработке и производстве.В качестве альтернативы вы можете изменить используемый вами стек Heroku;взгляните на документы по стеку Heroku

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...