랙 및 Phusion 승객으로 Sinatra 앱을 다시 시작한 후 첫 번째 요청에 오류가 발생하는 이유는 무엇입니까?

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

문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top