Spec-Zone.ru › Ruby on Rails 5.0

класс ActionDispatch::Static

Родитель:
Object

Этот промежуточный программный модуль попытается вернуть содержимое тела файла с диска в ответе. Если файл не найден на диске, запрос будет передан в стеку приложения. Этот промежуточный программный модуль обычно инициализируется для обработки статических ресурсов из каталога `public/` сервера.

Этот промежуточный программный модуль проверяет путь, чтобы гарантировать, что будут отображаться только файлы, находящиеся в корневом каталоге. Запрос не сможет выполнить обход каталогов с помощью этого промежуточного программного модуля. Только запросы «GET» и «HEAD» приведут к возврату файла.

Публичные методы класса

new(app, path, deprecated_cache_control = :not_set, index: 'index', headers: {}) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/static.rb, line 113
def initialize(app, path, deprecated_cache_control = :not_set, index: 'index', headers: {})
  if deprecated_cache_control != :not_set
    ActiveSupport::Deprecation.warn("The `cache_control` argument is deprecated,"                                          "replaced by `headers: { 'Cache-Control' => #{deprecated_cache_control} }`, "                                          " and will be removed in Rails 5.1.")
    headers['Cache-Control'.freeze] = deprecated_cache_control
  end

  @app = app
  @file_handler = FileHandler.new(path, index: index, headers: headers)
end

Публичные методы экземпляра

call(env) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/static.rb, line 125
def call(env)
  req = Rack::Request.new env

  if req.get? || req.head?
    path = req.path_info.chomp('/'.freeze)
    if match = @file_handler.match?(path)
      req.path_info = match
      return @file_handler.serve(req)
    end
  end

  @app.call(req.env)
end

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API