Rails 3.0.x send_file отправка 404 HTML вместо реального файла

#ruby-on-rails #ruby-on-rails-3 #apache #download

#ruby-on-rails #ruby-on-rails-3 #apache #Скачать

Вопрос:

Я настроил маршрут для обработки загрузки определенного файла.

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

в Pages#обзор я отправляю файл с этой строкой

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

Я включил настройку x-sendfile.

   config.action_dispatch.x_sendfile_header = "X-Sendfile"
 

Кроме того, я установил и включил модуль mod_xsendfile на сервере apache. Я также включил его для своего сайта.

 XSendFile on
 

Тем не менее, когда я нажимаю на URL http://mysite.com/overview , браузер загружается overview.pdf.html , и в HTML-файле говорится: 404: Requested URL /overview not found on this server

Я проверил существование файла. Файл pdf находится в каталоге /public/downloads . Какую конфигурацию мне не хватает? Пожалуйста, помогите.

Ответ №1:

В зависимости от версии mod_xsendfile, которую вы используете, вам нужно будет добавить одно из следующих после «XSendFile on», чтобы предоставить mod_xsendfile разрешения на доступ к файлам в вашей файловой системе.

mod_xsendfile 0.9:

XSendFileAllowAbove on

mod_xsendfile >0.9:

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