Rails 3.0.x send_file发送404 HTML而不是真实文件

时间:2011-11-01 06:41:33

标签: ruby-on-rails ruby-on-rails-3 apache download

我已设置了处理特定文件下载的路径。

  match '/overview' => "pages#overview", :as => "da_overview"

在页面#概述中,我正在使用此行发送文件

send_file File.join(Rails.root, 'public', 'downloads', 'overview.pdf'), :type =>"application/pdf"   

我已经开启了x-sendfile设置。

  config.action_dispatch.x_sendfile_header = "X-Sendfile"

另外,我在apache服务器上安装并启用了mod_xsendfile模块。我也为我的网站启用了它。

XSendFile on

但是,当我点击网址http://mysite.com/overview时,浏览器正在下载overview.pdf.html,HTML文件显示为404: Requested URL /overview not found on this server

我检查了文件是否存在。 pdf文件是/ public / downloads目录。我错过了什么配置?请帮忙。

1 个答案:

答案 0 :(得分:2)

根据您运行的mod_xsendfile的版本,您需要在“XSendFile on”之后添加以下内容之一,以授予mod_xsendfile访问文件系统上文件的权限。

mod_xsendfile 0.9:

XSendFileAllowAbove on

mod_xsendfile> 0.9:

XSendFilePath "/path/where/files/you're/sending/are"