Pourquoi ai-je une erreur sur la première demande après le redémarrage d'une application Sinatra avec rack et Phusion passager?

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

Question

Après que je touche tmp / restart.txt et redémarre mon application, la première requête renvoie une erreur, généralement quelque chose de ne pas trouver Haml :: Engine ou un autre bijou. La deuxième et les demandes ultérieures fonctionnent tous très bien. J'avais ce problème sur Dreamhost qui était en cours d'exécution en rack 0.4.1 et 0.3.3 Sinatra, mais après avoir déménagé à mon hôte et l'exécution d'un rack plus récent (0.9.1) et Sinatra (0.9.0.4) Je vois encore le problème.

Si vous ne connaissez pas la réponse exacte, mais ont des conseils sur la façon dont je pouvais le suivre vers le bas, s'il vous plaît laissez-moi savoir.

Voici mon config.ru:

require 'rubygems'
require 'sinatra'

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

require 'app.rb'
run Sinatra::Application
Était-ce utile?

La solution

Je regarde en vous assurant que vous êtes exigeant que tous les gemmes nécessaires. Peut-être il y a quelque chose de l'ordre que vous le faites qui cause à échouer la première fois. Est-ce que vous rubygems exigez?

Il pourrait également aider si vous publié votre configuration de rack pour l'application (config.ru).

Autres conseils

L'erreur est causée par la pierre précieuse Sinatra chargement trop tard. Ceci est la solution:

#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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top