0

我正在使用一个应用程序,并希望部署到 heroku。完整来源在这里

我看到的主要错误是

heroku[router]: at=info method=GET path="/" host=cheesyparts.herokuapp.com request_id=25d2dbb5-e13a-4146-bb3a-9386f997c44c fwd="54.234.191.55" dyno=web.1 connect=2 service=3 status=404 bytes=417

在本地,当我尝试通过工头启动时,也会出现同样的问题。但是,如果我使用ruby parts_server_control.rb run. 任何提示表示赞赏。

config.ru看起来像这样

require './parts_server'
run Sinatra::Application

控制脚本parts_server_control.rb如下所示:

require "bundler/setup"
require "daemons"
require "pathological"
require "thin"

Daemons.run_proc("parts_server", :monitor => true) do
  require "parts_server"

  Thin::Server.start("0.0.0.0", PORT, CheesyParts::Server)
end
4

1 回答 1

1

控制脚本正在运行 app class CheesyParts::Server,但您的config.ru(由foremanHeroku 使用)假定应用程序以经典风格编写并正在使用 class Sinatra::Application。请参阅有关模块化和经典应用程序样式的 Sinatra 文档。由于没有添加任何内容,Sinatra::Application因此它是一个“空”应用程序,因此任何路线都会出现 404 错误。

解决方法是更改​​线路

run Sinatra::Application

在你config.ru

run CheesyParts::Server

这样该类将用作主应用程序。

于 2014-07-16T00:06:02.597 回答