我觉得我在这里有点傻,但我不断收到错误,提示 env 散列中缺少 SERVER_NAME key ,而且我找不到任何关于 Rack::SendFile 的实质性文档..
那么 - 我该如何提供文件?
最佳答案
如果您提供大文件下载,我建议让网络服务器提供大数据。这样,您就不会浪费宝贵的资源来运行您的 Rack 应用程序,而只是为了让用户进行冗长的下载。
如果您使用特殊的 Header 进行响应(X-Sendfile
用于 Apache,X-Accel-Redirect
用于 Nginx),网络服务器将使用给定文件的内容作为响应的主体。这样,您的 Rack 应用程序就可以为下一个请求做好准备,同时网络服务器负责将数据发送给用户的冗长过程。您可能需要先为您的网络服务器启用此功能。
关于ruby - 如何通过 Rack 提供二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782663/