在我正在使用的一个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报告生成功能。无论如何,我搜索了很多,找不到更好的答案。
请帮忙。谢谢:) -
答案 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
以查看其使用位置和方式。