diff options
author | Vijay Dev <vijaydev.cse@gmail.com> | 2014-08-19 16:28:53 +0000 |
---|---|---|
committer | Vijay Dev <vijaydev.cse@gmail.com> | 2014-08-19 16:28:53 +0000 |
commit | 41231ef6c6c6a6e546b69add28f04aafb9e0e952 (patch) | |
tree | 71ebb32624a29c5262ad076a5dd95ebe48844f88 /actionpack/lib/action_dispatch/middleware/static.rb | |
parent | 0cb3bdb66e87981c1094edecfce9182ae8aeb240 (diff) | |
parent | bc70448f6d6b83c1cd0814c9e93f7ed8245637a7 (diff) | |
download | rails-41231ef6c6c6a6e546b69add28f04aafb9e0e952.tar.gz rails-41231ef6c6c6a6e546b69add28f04aafb9e0e952.tar.bz2 rails-41231ef6c6c6a6e546b69add28f04aafb9e0e952.zip |
Merge branch 'master' of github.com:rails/docrails
Conflicts:
actionpack/lib/action_controller/metal/mime_responds.rb
actionview/lib/action_view/vendor/html-scanner/html/sanitizer.rb
activerecord/lib/active_record/type/value.rb
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware/static.rb')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/static.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/static.rb b/actionpack/lib/action_dispatch/middleware/static.rb index 2764584fe9..25e32cdef8 100644 --- a/actionpack/lib/action_dispatch/middleware/static.rb +++ b/actionpack/lib/action_dispatch/middleware/static.rb @@ -2,6 +2,16 @@ require 'rack/utils' require 'active_support/core_ext/uri' module ActionDispatch + # This middleware returns a file's contents from disk in the body response. + # When initialized it can accept an optional 'Cache-Control' header which + # will be set when a response containing a file's contents is delivered. + # + # This middleware will render the file specified in `env["PATH_INFO"]` + # where the base path is in the +root+ directory. For example if the +root+ + # is set to `public/` then a request with `env["PATH_INFO"]` of + # `assets/application.js` will return a response with contents of a file + # located at `public/assets/application.js` if the file exists. If the file + # does not exist a 404 "File not Found" response will be returned. class FileHandler def initialize(root, cache_control) @root = root.chomp('/') @@ -45,6 +55,15 @@ module ActionDispatch end end + # This middleware will attempt to return the contents of a file's body from + # disk in the response. If a file is not found on disk, the request will be + # delegated to the application stack. This middleware is commonly initialized + # to serve assets from a server's `public/` directory. + # + # This middleware verifies the path to ensure that only files + # living in the root directory can be rendered. A request cannot + # produce a directory traversal using this middleware. Only 'GET' and 'HEAD' + # requests will result in a file being returned. class Static def initialize(app, path, cache_control=nil) @app = app |