• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

sinatra で画像ファイルを扱うためのメモ

##下策:直接アクションにベタ書き

[ユースケース] この画像1個だけでいいんです

ruby>>
get '/logo.png' do
content_type :png
send_file "logo.png"
end
<<--

##中策:パラメータとブロック引数で処理

[ユースケース] images/* に画像が多くてアクション列挙してられない

ruby>>
get '/images/:file.:ext' do |file, ext|
content_type ext
send_file "images/#{file}.#{ext}"
end
<<--

##上策:Rackに任せる

[ユースケース] 速度、効率的にフロントで捌きたい

ruby>>
use Rack::Static, :urls => ["/images"], :root => "public"
<<--

これで Rails/Merb でおなじみの public/images/* を捌く事ができる

posted by maiha maiha on Tue 28 Jul 2009 at 17:49 with 0 comments