Heroku 机械化&x2B;西纳特拉+;应用程序崩溃了

Heroku 机械化&x2B;西纳特拉+;应用程序崩溃了,heroku,sinatra,mechanize,Heroku,Sinatra,Mechanize,我创建了一个使用Mechanize gem的Sinatra应用程序。它在本地运行良好,但当我将其部署到Heroku时,它会告诉我 at=error code=H10 desc="App crashed" method=GET path="/" fwd="83.245.232.99" dyno= connect= service= status=503 bytes= 即使对于这种最小化的代码: require "sinatra" require "rubygems" require "mech

我创建了一个使用Mechanize gem的Sinatra应用程序。它在本地运行良好,但当我将其部署到Heroku时,它会告诉我

 at=error code=H10 desc="App crashed" method=GET path="/" fwd="83.245.232.99" dyno= connect= service= status=503 bytes=
即使对于这种最小化的代码:

require "sinatra"
require "rubygems"
require "mechanize"

get '/' do 
  "hi"
end

出了什么问题?

出于某种原因,它需要

set :server, 'webrick'

在我的app.rb中,使用Mechanize运行时不会出错。

这可能就是原因

HTTPClient定义了一个名为HTTP的模块。默认情况下,Sinatra会按顺序查找命名空间名称为HTTP和WEBrick的机架处理程序

由于HTTP名称空间已经定义,Sinatra实际上认为它是一个机架处理程序。我想这是西纳特拉的一只虫子。它应该在使用前检查处理程序是否响应run

无论如何,修复方法是使用Thin,或者如果您想使用WEBrick,请明确告诉Sinatra跳过自动机架检测,方法是:

设置:服务器“webrick” 这将防止Sinatra认为HTTPClient HTTP模块是机架处理程序

从你那里得到的