1

在我触摸 tmp/restart.txt 并且我的应用程序重新启动后,第一个请求会引发错误,通常是关于找不到 Haml::Engine 或其他一些 gem。第二个和后续请求都可以正常工作。我在运行 Rack 0.4.1 和 Sinatra 0.3.3 的 Dreamhost 上遇到了这个问题,但是在移动到我自己的主机并运行更新的 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
4

2 回答 2

2

我会考虑确保您需要所有必要的宝石。也许您正在执行的命令有一些原因导致它第一次失败。你要求rubygems吗?

如果您发布了应用程序的机架配置 ( config.ru),它也可能会有所帮助。

于 2009-03-09T14:43:50.603 回答
1

该错误是由 Sinatra gem 加载太晚引起的。这是解决方案:

#config.ru

ENV['GEM_HOME'] ||= `gem env path`.strip.split(':').first
ENV['GEM_PATH'] ||= `gem env path`.strip
Gem.clear_paths

需要'应用程序文件名-去这里'
设置:环境,:生产
运行 Sinatra::Application
于 2011-04-21T09:44:13.923 回答