Ruby / Sinatra - 提供css、javascript或图像文件

31

什么是在Sinatra中正确的路由请求方式,以便它可以提供没有处理过的文件?我正在寻找大多数人在Sinatra框架中执行此操作的方式。通常我将所有静态内容放在“content”路径下。

例如:
/content/css
/content/img
/content/js

如何使用通配符来服务于“content”路径下的所有内容?

我惊讶地发现这里没有真正的例子:
http://sinatra-book.gittr.com/

2个回答

54

Sinatra和Rails使用路径public来存储静态资源,例如./public/javascripts/。这些路径中的所有文件将由Web服务器(如Thin、Passenger)提供服务,但不需要在URL中加上/public(例如,在Web上,位于#{my_app_root}/public/javascripts/application.js位置的文件将可通过URL http://#{my_domain}/javascripts/application.js访问)。


3
所以这个公共文件夹应该与我的视图文件夹并列 - 处于同一层级?我在哪里可以学到这样的知识呢?你能推荐一些好的参考网站给我吗?+1 - BuddyJoe
不确定我怎么会错过那个。谢谢。 - BuddyJoe

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接