2016-03-21 9 views
1

Ich muss eine Datei mit einem bestimmten Inhaltstyp (application/pkcs7-mime) für Apple Universal Links senden. Ich verwende die send_file Funktion von Schienen, und fügen Sie :type als Parameter, , aber der Typ ist immer text/plain.Set Content-Type mit send_file

Hier ist mein Controller:

class AppleController < ApplicationController 
    def download_app_site_association 
    send_file "#{Rails.root}/public/apple-app-site-association", {:filename => "apple-app-site-association", :type => "application/pkcs7-mime" , :x_sendfile => true} 
    end 
end 

Ich habe auch versucht, es wie folgt hinzuzufügen:

send_file "#{Rails.root}/public/apple-app-site-association", :filename => "apple-app-site-association", :type => "application/pkcs7-mime" , :x_sendfile => true 

und manuell wie diese Einstellung:

response.headers["Content-type"] = "application/pkcs7-mime" 
send_file "#{Rails.root}/public/apple-app-site-association", :filename => "apple-app-site-association", :x_sendfile => true 

mir jemand erklären kann, Warum funktioniert das nicht?

Antwort

1

Ich fand die Lösung. Das Problem, das war, als ich versuchte, mywebsite.com/apple-app-site-association zu bekommen, wurde der Router zunächst für Dateien in #{Rails.root}/public/ sucht und sucht dann nach Routen in routes.rb

Als meine Datei und meine Route hatte den gleichen Namen, wurde die apple_controller nie erreicht.

Also habe ich nur den Dateinamen geändert.

0

Es gibt einen Parameter, den Sie

http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_file

UPDATE einstellen: ist der registrierte Mime-Typ unter config/initializers/mime_types.rb?

+0

Ja, es gibt, aber wie in meiner Frage geschrieben, funktioniert es nicht für mich. – Shrolox

+0

Nein, es ist nicht registriert, aber ich habe das Problem in meinem Code gefunden und werde die Antwort posten. Danke trotzdem für Hilfe – Shrolox

Verwandte Themen