Ruby / Roda - Web Framework / Plugins / :static


Introduction

The :static plugin loads the Rack::Static middleware into the application.

It mainly exists to make serving static files simpler, by supplying defaults to Rack::Static that are appropriate for Roda.

The :static plugin recognises the application's :root option, and by default sets the Rack::Static :root option to the /public subfolder of the application's :root option.

Additionally, if a relative path is provided as the :root option to the plugin, it will be considered relative to the application's :root option.

Since the :urls option for Rack::Static is always required, the :static plugin uses a separate option for it.

Examples:

opts[:root] = '/path/to/app'
  
  plugin :static, ['/js', '/css'] # path: /path/to/app/public
  
  plugin :static, ['/images'], :root=>'pub'  # path: /path/to/app/pub
  
  plugin :static, ['/media'], :root=>'/path/to/public' # path: /path/to/public
plugin :static, ['/css', '/js', '/fonts', '/images']
  
  # 
  plugin :static, ['/css', '/js', '/fonts', '/images'], root: File.expand_path('../public', __FILE__)