Подтвердить что ты не робот

Приложение Heroku не запускается - `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.

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

$LOAD_PATH.unshift(Dir.getwd)

ПРИМЕЧАНИЕ. Я не смог проверить на Heroku

МОЯ ПРОБЛЕМА: Как единорог вести себя корректно с помощью приложения rubat < 1.9.2 sinatra без Gemfile, config.ru или config/unicorn.rb.

Ответ 3

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

Ответ 5

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

my.gems выглядит следующим образом:

sinatra
hpricot