D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
opt
/
alt
/
ruby18
/
lib64
/
ruby
/
gems
/
1.8
/
doc
/
rack-1.6.1
/
ri
/
Rack
/
Static
/
Filename :
cdesc-Static.yaml
back
Copy
--- !ruby/object:RI::ClassDescription attributes: [] class_methods: - !ruby/object:RI::MethodSummary name: new comment: - !ruby/struct:SM::Flow::P body: The Rack::Static middleware intercepts requests for static files (javascript files, images, stylesheets, etc) based on the url prefixes or route mappings passed in the options, and serves them using a Rack::File object. This allows a Rack stack to serve both static and dynamic content. - !ruby/struct:SM::Flow::P body: "Examples:" - !ruby/struct:SM::Flow::P body: "Serve all requests beginning with /media from the "media" folder located in the current directory (ie media/*):" - !ruby/struct:SM::Flow::VERB body: " use Rack::Static, :urls => ["/media"]\n" - !ruby/struct:SM::Flow::P body: "Serve all requests beginning with /css or /images from the folder "public" in the current directory (ie public/css/* and public/images/*):" - !ruby/struct:SM::Flow::VERB body: " use Rack::Static, :urls => ["/css", "/images"], :root => "public"\n" - !ruby/struct:SM::Flow::P body: "Serve all requests to / with "index.html" from the folder "public" in the current directory (ie public/index.html):" - !ruby/struct:SM::Flow::VERB body: " use Rack::Static, :urls => {"/" => 'index.html'}, :root => 'public'\n" - !ruby/struct:SM::Flow::P body: Serve all requests normally from the folder "public" in the current directory but uses index.html as default route for "/" - !ruby/struct:SM::Flow::VERB body: " use Rack::Static, :urls => [""], :root => 'public', :index =>\n 'index.html'\n" - !ruby/struct:SM::Flow::P body: "Set custom HTTP Headers for based on rules:" - !ruby/struct:SM::Flow::VERB body: " use Rack::Static, :root => 'public',\n :header_rules => [\n [rule, {header_field => content, header_field => content}],\n [rule, {header_field => content}]\n ]\n\n Rules for selecting files:\n\n 1) All files\n Provide the :all symbol\n :all => Matches every file\n\n 2) Folders\n Provide the folder path as a string\n '/folder' or '/folder/subfolder' => Matches files in a certain folder\n\n 3) File Extensions\n Provide the file extensions as an array\n ['css', 'js'] or %w(css js) => Matches files ending in .css or .js\n\n 4) Regular Expressions / Regexp\n Provide a regular expression\n %r{\\.(?:css|js)\\z} => Matches files ending in .css or .js\n /\\.(?:eot|ttf|otf|woff|svg)\\z/ => Matches files ending in\n the most common web font formats (.eot, .ttf, .otf, .woff, .svg)\n Note: This Regexp is available as a shortcut, using the :fonts rule\n\n 5) Font Shortcut\n Provide the :fonts symbol\n :fonts => Uses the Regexp rule stated right above to match all common web font endings\n\n Rule Ordering:\n Rules are applied in the order that they are provided.\n List rather general rules above special ones.\n\n Complete example use case including HTTP header rules:\n\n use Rack::Static, :root => 'public',\n :header_rules => [\n # Cache all static files in public caches (e.g. Rack::Cache)\n # as well as in the browser\n [:all, {'Cache-Control' => 'public, max-age=31536000'}],\n\n # Provide web fonts with cross-origin access-control-headers\n # Firefox requires this when serving assets using a Content Delivery Network\n [:fonts, {'Access-Control-Allow-Origin' => '*'}]\n ]\n" constants: [] full_name: Rack::Static includes: [] instance_methods: - !ruby/object:RI::MethodSummary name: applicable_rules - !ruby/object:RI::MethodSummary name: call - !ruby/object:RI::MethodSummary name: can_serve - !ruby/object:RI::MethodSummary name: overwrite_file_path - !ruby/object:RI::MethodSummary name: route_file name: Static superclass: Object