2010-08-16 56 views
27

通過Sinatra路由請求的正確方法是什麼,以便它在沒有處理的情況下提供文件?我正在尋找人們在Sinatra框架中最常見的方式嗎?我通常將所有靜態內容放在「內容」路徑中。Ruby/Sinatra - 提供css,javascript或圖像文件

例子:
/內容/ CSS
/內容/ IMG
/內容/ JS

如何使用通配符來服務了下內容的一切嗎?

我很驚訝有這樣沒有真正的例子在這裏:
http://sinatra-book.gittr.com/

回答

51

西納特拉和Rails使用路徑public靜態內容 - 例如,./public/javascripts/。然後,這些路徑中的所有文件將由網絡服務器(例如瘦客戶機)提供服務,但不需要URL中的/public(例如,#{my_app_root}/public/javascripts/application.js處的文件將通過網址在URL http://#{my_domain}/javascripts/application.js處可用)。

+2

所以這個公共文件夾應該坐在我的視圖文件夾旁邊 - 在同一個同級別?我在哪裏可以在網上學到這樣的東西?您可以指向我的任何優秀參考網站? +1 – BuddyJoe 2010-08-16 14:03:26

+0

http://www.sinatrarb.com/intro.html – yfeldblum 2010-08-16 14:17:47

+0

不知道我是如何錯過的。謝謝。 – BuddyJoe 2010-08-16 17:31:04

7
get '/notes/images/:file' do 
    send_file('/root/dev/notes/images/'+params[:file], :disposition => 'inline') 
end