Warum erhalte ich bei der ersten Anfrage nach dem Neustart einer Sinatra-App mit Rack und Phusion Passenger eine Fehlermeldung?

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

Frage

Nachdem ich tmp/restart.txt berühre und meine App neu startet, löst die erste Anfrage einen Fehler aus, normalerweise etwas, weil Haml::Engine oder ein anderes Juwel nicht gefunden wird.Die zweite und die folgenden Anfragen funktionieren alle einwandfrei.Ich hatte dieses Problem auf Dreamhost, auf dem Rack 0.4.1 und Sinatra 0.3.3 ausgeführt wurden, aber nachdem ich zu meinem eigenen Host gewechselt bin und ein neueres Rack (0.9.1) und Sinatra (0.9.0.4) ausgeführt habe, sehe ich das Problem immer noch.

Wenn Sie die genaue Antwort nicht kennen, aber Tipps haben, wie ich sie aufspüren kann, lassen Sie es mich bitte wissen.

Hier ist meine config.ru:

require 'rubygems'
require 'sinatra'

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

require 'app.rb'
run Sinatra::Application
War es hilfreich?

Lösung

Ich würde versuchen, sicherzustellen, dass Sie alle notwendigen Edelsteine ​​benötigen.Vielleicht gibt es etwas an der Reihenfolge, in der Sie es ausführen, was dazu führt, dass es beim ersten Mal fehlschlägt.Benötigen Sie rubygems?

Es könnte auch hilfreich sein, wenn Sie Ihre Rack-Konfiguration für die App veröffentlicht haben (config.ru).

Andere Tipps

Der Fehler wird durch die Sinatra gem Laden zu spät verursacht. Das ist die Lösung:

#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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top