在我触摸tmp / restart.txt并且我的应用程序重新启动后,第一个请求会抛出一个错误,通常是找不到Haml :: Engine或其他一些gem。第二个及后续请求都可以正常工作。我在Dreamhost上遇到了这个问题,它运行了Rack 0.4.1和Sinatra 0.3.3,但在移动到我自己的主机并运行一个较新的Rack(0.9.1)和Sinatra(0.9.0.4)后,我仍然看到了问题。 / p>
如果您不知道确切的答案,但有关于如何追踪它的提示,请告诉我。
这是我的config.ru:
require 'rubygems'
require 'sinatra'
disable :run
set :environment, :production
set :raise_errors, true
require 'app.rb'
run Sinatra::Application
答案 0 :(得分:2)
我会考虑确保你需要所有必要的宝石。或许有一些关于你正在做的命令,导致它第一次失败。您需要rubygems
吗?
如果您发布了应用的机架配置(config.ru
),也可能会有所帮助。
答案 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