Mechanize + Sinatra + Heroku:App崩溃了

时间:2014-10-23 15:59:27

标签: 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 "mechanize"

get '/' do 
  "hi"
end

出了什么问题?

2 个答案:

答案 0 :(得分:1)

这可能是原因。

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

由于已经定义了HTTP命名空间,因此Sinatra实际上认为它是一个Rack处理程序。我认为这是Sinatra的一个错误。它应检查处理程序在使用之前是否响应运行。

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

设置:服务器,' webrick' 这将阻止Sinatra认为HTTPClient HTTP模块是Rack处理程序。

来自here

答案 1 :(得分:0)

出于某种原因需要

set :server, 'webrick'

在我的 app.rb 中与Mechanize一起运行,没有错误。