2009-02-24 15 views
1

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

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

Вот мой 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).

+0

Да, мне нужны рубигемы, и он работает отлично, автономно или работает в режиме реального времени. Я добавил свой config.ru к исходному вопросу, как вы предложили. Это почти так же, как Passenger не перезапускает приложение до тех пор, пока не поступит первый запрос, и этот запрос не попадет в проблему синхронизации, потому что он все еще подходит. –

+0

Все выглядит отлично с вашей конфигурацией стойки. Единственное, что осталось предложить - это попробовать приложение для приветствия в мире приветствия и посмотреть, произойдет ли одно и то же. Похоже, поскольку ваше приложение демонстрирует ту же проблему на нескольких хостах, что это как-то связано с вашим приложением. Может быть, также обновить все ваши драгоценные камни? – rfunduk

+0

Не смотрел на это через некоторое время, но теперь у меня, похоже, нет проблемы, и единственное, что я могу придумать, это запустить более новую версию Sinatra (0.9.1.1), а так как вы упомянули обновление драгоценные камни, вы получаете галочку по умолчанию. –

1

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

 

#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 

 Смежные вопросы

  • Нет связанных вопросов^_^