我必须下载需要身份验证的静态文件。我正在关注http://makandracards.com/makandra/990-speed-up-file-downloads-with-rails-apache-and-x-sendfile和https://tn123.org/mod_xsendfile/
我已经设置config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
在 production.rb
控制器:
send_file("#{Rails.root}/private/myfile.mp3",
:filename => "myfile.mp3",
type: "audio/mpeg",
:disposition => 'inline')
阿帕奇配置:
<VirtualHost _default_:80>
ServerName myserver.com
RequestHeader Set X-Sendfile-Type X-Sendfile
XSendFile On
XSendFilePath /sites/releases
RailsEnv production
</VirtualHost>
即使,我把它,它没有发送任何 x-sendfile 标头。这很奇怪,但如果我删除 X-Sendfile On 和 X-SendfilePath,它会设置 X-Sendfile 标头,但文件不会在浏览器中播放。
我尝试了三天,我已经阅读了谷歌上的所有内容。
我有一种感觉,我错过了一些简单的东西。如果有人有任何建议,请告诉我!
谢谢。