2013-08-20 3 views
1

В одном из приложения Rails, я работаю, я мог бы найти файл под названиемasset.rb в конфигурации/инициализаторах - Rails App 3.2.13, Ruby 2.0.0-p0

asset.rb 

внутри config/initializers каталога и он содержит следующую информацию:

ActionController::Base.asset_host = Proc.new { |source, request| 
    if request.env["REQUEST_PATH"].include? ".pdf" 
    "file://#{Rails.root.join('public')}" 
    else 
    "#{request.protocol}#{request.host_with_port}" 
    end 
} 

Может кто-нибудь сказать мне, что это на самом деле означает. У нас есть функция создания отчетов в формате PDF в нашем приложении. Во всяком случае, я много искал и не мог найти лучшего ответа.

Пожалуйста, помогите. Спасибо:) -

ответ

1

Похоже, что ваши pdf-файлы (вероятно, созданные вашим поколением отчетов PDF) хранятся в каталоге /public. Что делает этот код, сначала проверяют, содержит ли путь запроса строку «.pdf».

Если REQUEST_PATH содержит .pdf, тогда устанавливает Base.asset_host в file://path_to_app/public в противном случае, например. https://host:port.

Так что я думаю, что что-то делается где-то, если есть запрос для файла pdf, тогда подайте файл по протоколу file:// независимо от протокола запроса, а для любых других файлов - протокол запроса.

Вы можете найти в своем приложении для Base.asset_host, чтобы узнать, где и как это используется.