Middleware is one of the most useful tools in Rack. With middleware, we can create an intermediate mini-application that receives an HTTP request before our main web app to do some work based on the request's headers, body, and HTTP method.
The term "do some work" is very vague. Indeed, we can do just about anything with Rack middleware. Here we are simply going to serve static files using the Rack::Static
middleware that comes with Rack.
In our simple example, we started Rack from within our app file, using Rack::Handler::WEBrick.run
. That's not usually how Rack apps are configured. Normally there is a separate file to manage the start of the Rack application. By convention, this file is always called config.ru
, although it is a normal Ruby file. In our case, we will have the following code in config.ru
:
require 'bundler/setup' require 'rack/builder' require_relative 'dummy_app' NoBackendTodoApp = Rack::Builder.new do # Serve all requests to...