Ruby on rails Jruby/JRack-Tomcat上的Sendfile

Ruby on rails Jruby/JRack-Tomcat上的Sendfile,ruby-on-rails,tomcat,jruby,Ruby On Rails,Tomcat,Jruby,在将应用程序部署到Tomcat时,我遇到了一个有趣的问题。我是 使用Acts_as_flying_discer gem将html转换为PDF。怎么回事 gem/plugin所做的是呈现一个html视图,然后使用javasax 处理器,用于在服务器的 TMP目录 我遇到的问题是当插件调用发送 将文件发送到浏览器。它发送一个0字节的文件。看看Rails日志, 它确实说它发送了/tmp/41c986f5e6249ce24c7698b6494796e0.pdf Tomcat日志显示200状态,就好像它发

在将应用程序部署到Tomcat时,我遇到了一个有趣的问题。我是 使用Acts_as_flying_discer gem将html转换为PDF。怎么回事 gem/plugin所做的是呈现一个html视图,然后使用javasax 处理器,用于在服务器的 TMP目录

我遇到的问题是当插件调用发送 将文件发送到浏览器。它发送一个0字节的文件。看看Rails日志, 它确实说它发送了/tmp/41c986f5e6249ce24c7698b6494796e0.pdf

Tomcat日志显示200状态,就好像它发送了文件一样。但是文件在里面 /tmp/目录中包含信息,发送到浏览器的是 空的

我最好的猜测是send_文件中有一些不稳定的东西 方法

webrick的作品很棒。我在几个不同的地方部署了一场战争 Linux和Windows上的Tomcat实例。。。日志似乎都显示出来了 一切正常

如果需要更多信息,或者有人对我的工作方式有任何想法,请告诉我 我们可以找到这个问题

谢谢,
-Jim

看来Tomcat不像其他web服务器那样理解“X-Sendfile”

“修复”是注释掉:

config.action_dispatch.x_sendfile_header = "X-Sendfile"
在您的环境中/production.rb

希望这能帮助别人


-Jim

您还可以将此中间件添加到中间件堆栈中


谢谢,这节省了我数小时的调试时间!追查起来真是令人沮丧。我很高兴它帮助了其他人。这是一个有趣的处理方式。