我正在构建 Lovers 的新版本与西纳特拉。您可以查看Lovers source code on GitHub .
通过 CLI 从存储库的根目录运行 cucumber
,我能够在 cucumber 模式下成功运行我的应用程序。但是...
1) 如何在开发模式下运行应用程序?
这有点棘手,因为它是一个模块化应用程序,我已将 app.rb
文件移至 lib/lovers/application.rb
.
2) 如何使用 shotgun
运行它,以便它在每次 HTTP 请求时自动重新启动应用程序?
3) 当您为 Sinatra 应用程序运行 ruby app.rb
时,它实际上会做什么?
如果你很好地回答了第 3 部分,我想我就能找到第 1 部分和第 2 部分的答案。
谢谢!
最佳答案
1) 只需从项目根目录运行 bundle exec shotgun
即可。 Shotgun 与 Thin 等其他机架服务器不同,是专门设计的...实际上...仅设计用于“开发”模式...因为如果代码发生更改,它会重新加载您的代码。
2) 为什么要针对每个请求?霰弹枪会根据需要自动重新装弹。
3) ruby app.rb
运行一个小型应用程序服务器(如下所示: http://www.sinatrarb.com/ ),但可能不是您想要的。霰弹枪应该可以解决问题。
这里最重要的是在loversapp根目录下的config.ru
。这就是霰弹枪和其他机架服务器所寻求的。它加载您的lib/lovers/application.rb
,设置正确的RACK_ENV
,并调用run Lovers::Application
。
关于ruby - 如何运行我的模块化 Sinatra 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941238/