diff options
author | Carlhuda <carlhuda@engineyard.com> | 2010-02-23 17:03:06 -0800 |
---|---|---|
committer | Carlhuda <carlhuda@engineyard.com> | 2010-02-23 17:06:35 -0800 |
commit | 5e2bd08023344f3fd4675e80203a10967ffe9000 (patch) | |
tree | 4e1b647bba47175b6ab9d0f054d4baba2224e221 /railties/lib | |
parent | a73f682e43016de520510e015802c48c9947a05c (diff) | |
download | rails-5e2bd08023344f3fd4675e80203a10967ffe9000.tar.gz rails-5e2bd08023344f3fd4675e80203a10967ffe9000.tar.bz2 rails-5e2bd08023344f3fd4675e80203a10967ffe9000.zip |
Makes send_file work again by deferring to Rack::Sendfile.
* Add the Rack::Sendfile middleware
* Make the header to use configurable via config.action_dispatch.x_sendfile_header (default to "X-Sendfile").
* Add Railties tests to confirm that these work
* Remove the :stream, :buffer_size, and :x_senfile default options to send_file
* Change the log subscriber to always say "Sent file"
* Add deprecation warnings for options that are now no-ops
Note that servers can configure this by setting X-Sendfile-Type. Hosting companies and those creating packages of servers specially designed for Rails applications are encouraged to specify this header so that this can work transparently.
Diffstat (limited to 'railties/lib')
-rw-r--r-- | railties/lib/rails/configuration.rb | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb index 50675d19b8..811c3a9fd9 100644 --- a/railties/lib/rails/configuration.rb +++ b/railties/lib/rails/configuration.rb @@ -12,6 +12,7 @@ module Rails middleware.use('::Rack::Runtime') middleware.use('::Rails::Rack::Logger') middleware.use('::ActionDispatch::ShowExceptions', lambda { Rails.application.config.consider_all_requests_local }) + middleware.use('::Rack::Sendfile', lambda { Rails.application.config.action_dispatch.x_sendfile_header }) middleware.use('::ActionDispatch::Callbacks', lambda { !Rails.application.config.cache_classes }) middleware.use('::ActionDispatch::Cookies') middleware.use(lambda { ActionController::Base.session_store }, lambda { ActionController::Base.session_options }) |