레일스는 이러한 이미지를 제공하지 않으므로 웹 서버에서이를 수행 할 수 있습니다. 이 시나리오를 처리하기 위해 웹 서버의 구성을 가장 잘 변경해야합니다. 예를 들어 Apache
을 사용하는 경우 mod_rewrite
으로 설정하는 것이 매우 쉽습니다.
만들기 레일은 이러한 이미지는 추한 것 역할을하지만 /public/images/unconventional.gif
일치, 파일 자체가 존재하지 않는 경우 routes.rb
의 경로를 제공하는 경우 는 가능하다. 예를 들어 :
이
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 입력을 사용하는 경우 위의 개념을 사용하는 경우는주의 파일 봉사하는 것을 다음
map.connect "public/images/unconventional.gif",
:controller => "static_image_controller",
:action => "serve"
및 컨트롤러 StaticImageController
를 만들 (예 : params[:file]
), 을 철저히 사용해야합니다.은 전체 파일 시스템이 외부 세계에 노출 될 위험이 있으므로 입력을 삭제합니다.