为什么会出现“找不到Thin适配器”的错误提示?

10
我是一名iOS开发者,对Ruby的经验很少。我想按照 "开始iOS移动开发和Sinatra API" 的指导,在Heroku上运行API。我从Git上获取了示例项目,所以我知道我的设置与我应该拥有的设置完全相同。我已经进行了bundle安装,并认为一切都应该准备就绪,但每当我执行foreman start时,我会得到以下结果:
2:14:56 web.1     | started with pid 5140
12:14:57 web.1     | No adapter found for {MY PROJECT'S FILEPATH}
12:14:57 web.1     | process terminated
12:14:57 system    | sending SIGTERM to all processes

我做错了什么,或者需要做些什么才能让它运行起来?

谢谢!

1个回答

17

您缺少一个必需的 config.ru 文件,该文件用于指导如何启动应用程序。

在根目录中创建一个名为 config.ru 的文件,并添加以下内容:

require './api'
run Sinatra::Application
你可以通过在项目根目录中运行rackup来测试此是否正确。如果配置文件正确,则您的服务器应该启动。
请阅读When to use config.ruhttp://devcenter.heroku.com/articles/rack以获取更多信息。

2
我必须将Sinatra :: Application中的A大写,但然后它就可以工作了。谢谢,并感谢提供链接! - Ethan
1
这是一个很好的答案,但是Heroku的原始帖子(我也刚刚查看)建议跳过config.ru文件:“如果您跳过config.ru并在Procfile中声明自己的Web进程类型,则可以更好地控制应用程序的执行方式。” 然而,按照他们的说明会导致这个问题,幸运的是,你已经为我们解决了。 - adriandz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接