我正在学习ruby并查看他的框架。我无法理解的一件事是框架如何处理ruby世界中的请求。深入挖掘我发现有一个名为Rack的中间件可以完成这项任务。
所以我的问题是:
提前致谢。
答案 0 :(得分:4)
从机架规格:
Rack应用程序是响应调用的Ruby对象(不是类)。它只需要一个参数,即环境,并返回一个恰好包含三个值的数组:状态,标题和正文。
在实践中,启动机架应用程序的常用方法是在config.ru文件中定义。如果您查看rails应用程序的基本目录,您将看到它。在rails中,它包括config / environment.rb,其中包括config / application.rb,其中包括boot.rb,其中包括gem和whatnot。从那时起,框架开始做它的事情。
使用rails的一般想法是调度程序接受任何请求并决定需要对其执行的操作。调度程序可以看作是你提到的index.php的等价物。
如何访问config.ru文件(或如何启动机架应用程序)取决于部署应用程序的方式。 Phusion Passenger是apache和nginx的流行模块,它将在您添加到服务器配置文件的任何应用程序的根目录中查找config.ru。
真正归结为部署选项。 Ruby应用程序可以通过apache / nginx模块运行,直接通过用ruby编写的Web服务器运行,也可以通过CGI运行。
Here is a description of the different ways web apps are deployed, from the passenger docs