config / initializers中的asset.rb - Rails App 3.2.13,Ruby 2.0.0-p0

时间:2013-08-20 03:27:24

标签: ruby-on-rails initializer assets

在我正在使用的一个Rails应用程序中,我可以找到一个名为

的文件
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 个答案:

答案 0 :(得分:1)

看起来您的pdf文件(可能由PDF报告生成生成)存储在/public目录中。该代码正在做的是首先检查请求的路径是否包含字符串“.pdf”。

如果REQUEST_PATH包含.pdf,则将Base.asset_host设置为file://path_to_app/public,否则例如{} https://host:port

所以我认为在某处做的是,如果有pdf文件的请求,则无论请求协议如何都通过file://协议提供文件,对于任何其他文件使用请求协议

您可以在自己的应用程序中搜索Base.asset_host以查看其使用位置和方式。