1

私が作業しているRailsアプリの1つで、というファイルを見つけることができました

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 レポート生成機能があります。とにかく、私はたくさん検索しましたが、より良い答えを見つけることができませんでした.

助けてください。ありがとう :)-

4

1 に答える 1

1

PDFファイル(おそらくPDFレポート生成によって生成されたもの)が/publicディレクトリに保存されているようです。そのコードが行っていることは、最初にリクエストのパスに文字列「.pdf」が含まれているかどうかを確認することです。

REQUEST_PATH含まれている場合は、それ以外の場合に.pdf設定Base.asset_hostされfile://path_to_app/publicますhttps://host:port

したがって、どこかで行われているのは、ファイルの要求がある場合は、要求プロトコルに関係なくプロトコルpdfを介してファイルを提供しfile://、他のファイルには要求プロトコルを使用することだと思います。

アプリケーション内で を検索して、Base.asset_hostこれがどこでどのように使用されているかを確認できます。

于 2013-08-20T03:39:00.573 に答える