Rails はこれらの画像を提供しません。Web サーバーに任せます。このシナリオを処理するには、Web サーバーの構成を変更することをお勧めします。たとえば、を使用する場合Apache
、 で設定するのはかなり簡単mod_rewrite
です。
Rails にこれらの画像を提供させるのは見苦しいですが、一致する にルートを指定し、ファイル自体が存在しない場合は可能です。例えば:routes.rb
/public/images/unconventional.gif
map.connect "public/images/unconventional.gif",
:controller => "static_image_controller",
:action => "serve"
そして、コントローラを作成しますStaticImageController
:
class StaticImageController < ApplicationController
def serve
image = File.read(File.join(Rails.root, "unconventional.gif"))
send_data image, :type => "image/gif", :disposition => "inline"
end
end
警告:上記の概念を使用する場合、URL からの入力を使用して提供するファイルを決定する場合 (params[:file]
たとえば、 を使用)、入力を完全にサニタイズする必要があることに注意してください。外の世界。