Почему я получаю сообщение об ошибке при первом запросе после перезапуска приложения Sinatra с Rack и Phusion Passenger?

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

Вопрос

После того, как я коснусь tmp/restart.txt и мое приложение перезапустится, первый запрос выдает ошибку, обычно что-то о том, что не найден Haml::Engine или какой-либо другой gem.Второй и последующие запросы все работают нормально.У меня была эта проблема на Dreamhost, на котором были запущены Rack 0.4.1 и Sinatra 0.3.3, но после перехода на мой собственный хост и запуска более новых Rack (0.9.1) и Sinatra (0.9.0.4) я все еще вижу проблему.

Если вы не знаете точного ответа, но у вас есть советы о том, как я мог бы его найти, пожалуйста, дайте мне знать.

Вот мой config.ru:

require 'rubygems'
require 'sinatra'

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

require 'app.rb'
run Sinatra::Application
Это было полезно?

Решение

Я бы позаботился о том, чтобы убедиться, что вам требуются все необходимые драгоценные камни.Возможно, есть что-то в порядке, в котором вы это делаете, что приводит к сбою в первый раз.Вам требуется rubygems?

Это также могло бы помочь, если бы вы опубликовали свою конфигурацию стойки для приложения (config.ru).

Другие советы

Ошибка вызвана тем, что Sinatra gem загружается слишком поздно.Это и есть решение:

#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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top