¿Por qué aparece un error en la primera petición después de reiniciar una aplicación Sinatra con cremallera y pasajeros Phusion?

StackOverflow https://stackoverflow.com/questions/582201

Pregunta

Después toco tmp / restart.txt y mis aplicación se reinicia, la primera solicitud genera un error, por lo general algo acerca de no encontrar Haml :: motor o alguna otra joya. La segunda y siguientes solicitudes todos funcionan bien. Estaba teniendo este problema en Dreamhost, que estaba ejecutando 0.4.1 rack y Sinatra 0.3.3, pero después de pasar a mi propio anfitrión y la ejecución de un estante más reciente (0.9.1) y Sinatra (0.9.0.4) Todavía veo el problema.

Si usted no sabe la respuesta exacta, pero tienen consejos sobre cómo podía seguir hacia abajo, por favor hágamelo saber.

Aquí está mi config.ru:

require 'rubygems'
require 'sinatra'

disable :run
set :environment, :production
set :raise_errors, true

require 'app.rb'
run Sinatra::Application
¿Fue útil?

Solución

Me vería en asegurarse de que está requiriendo todas las gemas necesarias. Tal vez hay algo en el orden en que lo está haciendo que está causando que falle la primera vez. ¿Está requiriendo rubygems?

También podría ayudar si usted envió su configuración de bastidor para la aplicación (config.ru).

Otros consejos

El error es causado por la gema de carga Sinatra demasiado tarde. Esta es la solución:

#config.ru

ENV['GEM_HOME'] ||= `gem env path`.strip.split(':').first
ENV['GEM_PATH'] ||= `gem env path`.strip
Gem.clear_paths

require 'application-filename-goes-here'
set :environment, :production
run Sinatra::Application
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top