Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Heroku app fails to start - `require': no such file to load -- sinatratestapp (LoadError)

I'm trying to get my Heroku app to run using the bamboo-mri-1.9.2 stack. Of course it's running fine locally on Ruby 1.9.2. But when on production it crashes during the startup on executing config.ru which looks like this:

require 'sinatratestapp'
run Sinatra::Application

My .gems file:

sinatra --version '>= 1.0'

And the application itself as sinatratestapp.rb:

require 'rubygems'
require 'sinatra'

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

That's all I've got in the project and trying to run that on Heroku results:

<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.

I've tried to do as it guides but as a Ruby noob my examinations have resulted nothing.

like image 307
hleinone Avatar asked Oct 20 '10 00:10

hleinone


1 Answers

By the help of Heroku support request and this question I found out the solution.

Ruby 1.9.2 doesn't automatically include "." in the $LOAD_PATH. To workaround this, modify config.ru by stating require './sinatratestapp' instead of require 'sinatratestapp'.

like image 69
hleinone Avatar answered Oct 05 '22 02:10

hleinone