我想澄清 config.ru 文件以指定机架中间件,而不是使用 config.middleware 数组。
如果 config.ru 通常如下所示:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::Deflater
run TestApp::Application
我是否正确地说当我运行 TestApp::Application 时,我进入了 Rails 内部中间件?也就是说,它是否开始了 config.middleware 中定义的中间件链?
那么在 Rails 应用程序之外指定中间件的有效用途是对 Rails 本身外部的请求(或响应)进行处理?那么在这个例子中 Deflator 在 Rails 应用程序中间件开始之前对请求起作用?
使用 config.middelware 的有效用途是指定更多特定于 rails 的中间件,这些中间件可以放置在该链中的任何位置?
另外,当机架应用程序开始时,应用程序是什么?(这被传递到机架应用程序的初始化中?)。我一直认为 app 是 rails app 本身,但似乎 rails app 只是链条中的另一个中间件。