랙 및 Phusion 승객으로 Sinatra 앱을 다시 시작한 후 첫 번째 요청에 오류가 발생하는 이유는 무엇입니까?
문제
TMP/RETART.TXT를 터치하고 내 앱이 다시 시작되면 첫 번째 요청은 일반적으로 haml :: 엔진 또는 다른 보석을 찾지 못하는 것에 대한 오류가 발생합니다. 두 번째 및 후속 요청은 모두 잘 작동합니다. 나는 랙 0.4.1과 sinatra 0.3.3을 실행하는 Dreamhost 에서이 문제를 겪었지만 내 호스트로 이동하여 새로운 랙 (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 보석이 너무 늦게로드되어 발생합니다. 이것은 해결책입니다.
#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
제휴하지 않습니다 StackOverflow