diff options
Diffstat (limited to 'railties/lib/rails/rack/static.rb')
-rw-r--r-- | railties/lib/rails/rack/static.rb | 47 |
1 files changed, 3 insertions, 44 deletions
diff --git a/railties/lib/rails/rack/static.rb b/railties/lib/rails/rack/static.rb index 25b6cadbfc..d6b8face27 100644 --- a/railties/lib/rails/rack/static.rb +++ b/railties/lib/rails/rack/static.rb @@ -1,46 +1,5 @@ -require 'rack/utils' +require 'action_dispatch' -module Rails - module Rack - class Static - FILE_METHODS = %w(GET HEAD).freeze - - def initialize(app, root) - @app = app - @file_server = ::Rack::File.new(root) - end - - def call(env) - path = env['PATH_INFO'].chomp('/') - method = env['REQUEST_METHOD'] - - if FILE_METHODS.include?(method) - if file_exist?(path) - return @file_server.call(env) - else - cached_path = directory_exist?(path) ? "#{path}/index" : path - cached_path += ::ActionController::Base.page_cache_extension - - if file_exist?(cached_path) - env['PATH_INFO'] = cached_path - return @file_server.call(env) - end - end - end - - @app.call(env) - end - - private - def file_exist?(path) - full_path = File.join(@file_server.root, ::Rack::Utils.unescape(path)) - File.file?(full_path) && File.readable?(full_path) - end - - def directory_exist?(path) - full_path = File.join(@file_server.root, ::Rack::Utils.unescape(path)) - File.directory?(full_path) && File.readable?(full_path) - end - end - end +module Rails::Rack + Static = Deprecation::DeprecatedConstantProxy.new('Rails::Rack::Static', ActionDispatch::Static) end |