Почему я получаю сообщение об ошибке при первом запросе после перезапуска приложения Sinatra с помощью Rack и Phusion Passenger? - PullRequest
1 голос
/ 24 февраля 2009

После того, как я коснусь 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 ]

2 голосов
/ 09 марта 2009

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

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

1 голос
/ 21 апреля 2011

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


#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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...