【发布时间】:2012-01-29 09:33:27
【问题描述】:
我在 Sinatra 应用上使用 send_file:
get '/update/dl/:upd' do
filename ="/uploads/#{params[:upd]}"
send_file(filename, :filename => "t.cer", :type => "application/octet-stream")
end
文件夹/uploads/ 不是公开的,它位于应用程序目录中。当我尝试在 Chrome 中访问 localhost:4567/update/dl/some_file 时,它会返回一个 404,就像使用 Firefox 一样,当我看到标题时,它是一个 404。但如果我尝试使用 Safari,它会下载文件。所以我猜我的代码(和 Safari 的,但让我们把它留给 Apple :P)有问题。有什么问题?谢谢!
【问题讨论】:
-
检查所有浏览器中的 URL 是否正确。请求是否真的到达了 sinatra 应用程序?
-
是的,Sinatra 收到请求,并直接用 404 回复它
标签: ruby google-chrome safari sinatra sendfile