Heroku app не запускается - 'require': нет такого файла для загрузки-sinatratestapp (LoadError)


Я пытаюсь запустить приложение Heroku, используя стек bamboo-mri-1.9.2. Конечно, он отлично работает локально на Ruby 1.9.2. Но когда на производстве он выходит из строя во время запуска при выполнении config.ru, который выглядит следующим образом:

require 'sinatratestapp'
run Sinatra::Application

Мой .gems файл:

sinatra --version '>= 1.0'

И само приложение в виде sinatratestapp.rb:

require 'rubygems'
require 'sinatra'

get '/' do
  "Hello from Sinatra on Heroku!"
end

Это все, что у меня есть в проекте, и я пытаюсь запустить его на результатах Heroku:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- sinatratestapp (LoadError)
        from <internal:lib/rubygems/custom_require>:29:in `require'
        from config.ru:1:in `block (3 levels) in <main>'
        ...
-----> Your application is requiring a file that it can't find.

       Most often this is due to missing gems, or it could be that you failed
       to commit the file to your repo.  See http://docs.heroku.com/gems for
       more information on managing gems.

       Examine the backtrace above this message to debug.

Я пытался сделать так, как он руководит, но в качестве рубинового нуба мои экзамены привели ничего.

5 12

5 ответов:

С помощью запроса поддержки Heroku и этого вопроса я нашел решение.

Ruby 1.9.2 не включает автоматически "."в $LOAD_PATH. Чтобы обойти это, измените config.ru, указав require './sinatratestapp' вместо require 'sinatratestapp'.

Вы можете поместить следующую строку в свой config.ru файл и это исправит проблему, а также. Это также будет иметь широкое применение, поэтому оно вернет ощущение поведения до 1.9.2:

$LOAD_PATH.unshift (реж.getwd)

Примечание: Я не смог проверить на Heroku

Моя проблема: заставить unicorn правильно вести себя с приложением (ruby

Я думаю, что столкнулся с этой проблемой, когда экспериментировал с Синатрой. Ruby 1.9 по умолчанию не включает текущий каталог в путь, поэтому вы должны неявно указать require 'sinatratestapp' в нашем файле config.ru.

Спасибо за подсказку. О нем не было никаких упоминаний .самоцветы файл в Heroku post http://blog.heroku.com/archives/2009/3/5/32_deploy_merb_sinatra_or_any_rack_app_to_heroku/

Мои проекты Sinatra имеют тот же макет и выглядят примерно так же, единственная разница в том, что в моем .в файле gems я не указываю версию.

Мой .драгоценные камни выглядят так:

sinatra
hpricot