使用Rails&发送一个zip文件nginx的

时间:2016-07-22 20:04:31

标签: ruby-on-rails nginx webrick

使用nginx作为代理时,我无法下载zip文件(使用send_file)。

def download
  send_file file_path, filename: "file.zip"
end

在没有nginx的情况下运行(仅限webrick)它运行正常但是使用nginx代理它会在浏览器中打开它:enter image description here

Nginx代理配置:

server {
    server_name mydomain.com;

    location / {
        proxy_pass http://localhost:3001;
        proxy_set_header Host $host;
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/keys/app.htpasswd;
    }
}

编辑:

重新加载页面会导致文档被下载,因此我查看了每个请求的请求标头。它们应该是相同的,但它们不是。

在浏览器中打开

Failed

已成功下载

Successful

唯一的区别是我点击链接的第一个链接(在新标签页中打开链接并打开文件),然后我在第二个页面刷新页面。

编辑2:

我再次尝试使用webrick,它正在做同样的事情。

2 个答案:

答案 0 :(得分:0)

您还应该发送文件头并确保它们通过nginx传递。您可以通过在网络标签中监控浏览器的请求和响应来轻松验证

答案 1 :(得分:0)