如何使用sinatra API将图像提供给单个页面应用程序?

时间:2017-02-25 00:29:36

标签: ruby sinatra

我正在尝试使用我的Sinatra API将图像提供给我的客户端应用程序

当我使用此路线时,它会在我的浏览器中触发文件下载提示而不是加载图像文件,我将如何提供图像?

get '/images/:project/:img' do
  send_file(ProjectPhotos.serve_file(params)) # => triggers a download of file in browser
end

2 个答案:

答案 0 :(得分:0)

需要从OpenURI库中添加open

get '/images/:project/:img' do
  send_file open(ProjectPhotos.serve_file(params), type: 'image/jpeg', disposition: 'inline')
end

答案 1 :(得分:0)

要提供静态图像,您应该使用Sinatra应用程序根目录中的公用文件夹。公共文件夹中的所有文件都由Sinatra Web服务器提供,无需任何代码,并且url中省略了公共目录。

所以“public / yourimage.jpg”可从“www.yoursite.com/yourimage.jpg”获得

有关更多信息,请查看Sinatra documentation