module Roda::RodaPlugins::Head

  1. lib/roda/plugins/head.rb

The head plugin attempts to automatically handle HEAD requests, by treating them as GET requests and returning an empty body without modifying the response status or response headers.

So for the following routes,

route do |r|
  r.root do
    'root'
  end

  r.get 'a' do
    'a'
  end

  r.is 'b', method: [:get, :post] do
    'b'
  end
end

HEAD requests for /, /a, and /b will all return 200 status with an empty body.

This plugin also works with the not_allowed plugin if it is loaded after the not_allowed plugin. In that case, if GET is one of Allow header options, then HEAD will be as well.

NOTE: if you have a public facing website it is recommended that you enable this plugin, or manually handle HEAD anywhere you would handle GET. Search engines and other bots may send a HEAD request prior to crawling a page with a GET request. Without this plugin those HEAD requests will return a 404 status, which may prevent search engines from crawling your website.