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

После того, как я коснулся tmp / restart.txt и мое приложение перезапустилось, первый запрос выдает ошибку, обычно что-то о том, что не найден Haml::Engine или какой-либо другой гем. Второй и последующие запросы все работают нормально. У меня была эта проблема на 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

2 ответа

Решение

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

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

Ошибка вызвана слишком поздней загрузкой драгоценного камня Синатры. Это решение:

# config.ru

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

требуют 'application-filename-go-here'
набор: окружающая среда,: производство
запустить Синатра:: Приложение
Другие вопросы по тегам