2010-10-20 34 views
12

Estoy tratando de ejecutar mi aplicación Heroku utilizando la pila bamboo-mri-1.9.2. Por supuesto, está funcionando bien localmente en Ruby 1.9.2. Pero cuando la producción se bloquea durante el inicio de la ejecución de config.ru que tiene este aspecto:La aplicación Heroku no puede iniciarse - 'requiere': no ​​se carga ese archivo - sinatratestapp (LoadError)

require 'sinatratestapp' 
run Sinatra::Application 

Mi .gems archivo:

sinatra --version '>= 1.0' 

Y la propia aplicación como sinatratestapp.rb:

require 'rubygems' 
require 'sinatra' 

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

Eso es Todo lo que tengo en el proyecto y tratando de ejecutar eso en los resultados de 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. 

He intentado hacer como guía, pero como novato Ruby mis exámenes no han resultado en nada.

+0

Pude repetir el problema. Recomiendo enviar una solicitud de soporte a Heroku. – ponzao

Respuesta

38

Con la ayuda de la solicitud de soporte de Heroku y this question encontré la solución.

Ruby 1.9.2 no incluye automáticamente "." en $ LOAD_PATH Para solucionar esto, modifique config.ru indicando require './sinatratestapp' en lugar de require 'sinatratestapp'.

+1

La razón por la que funciona localmente fue el hecho obvio de que no utilicé config.ru cuando se ejecuta localmente. – hleinone

+0

Gracias, tenía exactamente el mismo problema. Wish Foreman etc. no era alérgico a Windows. –

+1

Para probar la aplicación local de inicio de sesión config.ru usando 'rackup'. – Morgan

-1

Mis proyectos de Sinatra tienen el mismo diseño y apariencia, la única diferencia es que en mi archivo .gems no especifico una versión.

mis .gems se ve así:

sinatra 
hpricot 
+0

No ayudó. ¿También estás en la pila 'bamboo-mri-1.9.2'? – hleinone

1

Creo que me encontré con este problema al experimentar con Sinatra. Ruby 1.9 no incluye el directorio actual en la ruta de forma predeterminada, por lo que debe indicar implícitamente require 'sinatratestapp' en nuestro archivo config.ru.

3

Puede poner la siguiente línea en su archivo config.ru y solucionará el problema también. Esto también va a llevar a una amplia aplicación, por lo que traerá de vuelta la sensación de pre-1.9.2 comportamiento:

$ LOAD_PATH.unshift (Dir.getwd)

NOTA: No he podido probar en Heroku

MI PROBLEMA: Conseguir que Unicorn se comporte correctamente con una aplicación sinatra (ruby < 1.9.2) sin un Gemfile, config.ru o config/unicorn.rb.

Cuestiones relacionadas