繁体   English   中英

Rails 3 send_file-0字节

[英]Rails 3 send_file - 0 bytes

我有以下Rails代码

send_file '/test.pdf'

该文件似乎正在下载0字节,有人对如何解决此问题有任何想法吗?

谢谢

我相信send_file取决于Web服务器的支持才能正常工作。 您是否正在使用内置服务器的Rails运行应用程序? 如果是这样,我想您会看到这里的行为。

基本上,send_file背后的想法是,它设置一个HTTP标头“ X-Sendfile”,指向要发送的文件。 Web服务器看到此标头,而不是返回响应的正文,而是发送指定的文件。

这种方法的好处是,您的普通Web服务器已经过高度优化,可以非常快速地发送静态文件的内容,并且通常可以比Rails本身更快地完成工作。

因此,解决问题的方法是:*使用支持X-Sendfile的Web服务器(例如Apache),或*如rubyprince所评论,请使用send_data代替,这将使ruby承担繁重的工作。

顺便说一句,您应该能够通过使用Firebug或Safari / Chrome的开发人员工具查看响应标题来确认是否正在发生这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM