The erb
method is typically used to render dynamic webpages (which should be placed in the app/views
directory):
get '/404' doerb :not_found, layout: false# Searches for app/views/not_found.erbend
However, static files can also be rendered in a similar way to dynamic webpages, using the render_static
method:
get '/404' dorender_static '/not_found.html'# Searches for app/static/public/not_found.htmlend
Alternatively, the static
method can be used to define a block. The above can be simplified into:
static '/not_found.html', aliases: %w[/404]
The static
method basically generates a get
route for the specified file path, along with its aliases. Aliases are not required though:
static '/not_found.html'
If you wish to define multiple static routes at once, you can use the block format:
static do |s|s.route '/not_found.html's.route '/maintenance.html', aliases: %w[/maintenance]s.route '/robots.txt'end
Static webpages should be stored in the app/static/public
directory.
If you wish to access the data stored in any JSON
, YAML
or XML
files in this directory (somewhere within your Ruby code), use the Static data accessor Static.public
- read here for more information on how to use the data stored in these files.