我需要为Apple通用链接发送一个具有特定内容类型(application/pkcs7-mime
)的文件。
我使用rails中的send_file
函数,并添加:type
作为参数,
但类型总是text/plain
。
这是我的控制器:
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
我也试着像这样添加它:
send_file "#{Rails.root}/public/apple-app-site-association", :filename => "apple-app-site-association", :type => "application/pkcs7-mime" , :x_sendfile => true
并像这样手动设置:
response.headers["Content-type"] = "application/pkcs7-mime"
send_file "#{Rails.root}/public/apple-app-site-association", :filename => "apple-app-site-association", :x_sendfile => true
任何人都可以解释为什么这不起作用吗?
答案 0 :(得分:1)
我找到了解决方案。
问题是,当我尝试获取mywebsite.com/apple-app-site-association
时,路由器首先搜索#{Rails.root}/public/
中的文件,然后在routes.rb
中搜索路由
由于我的档案和我的路线名称相同,因此从未到达apple_controller
。
所以我刚刚更改了文件名。
答案 1 :(得分:0)
您可以设置参数
http://api.rubyonrails.org/classes/ActionController/DataStreaming.html#method-i-send_file
UPDATE:是在config / initializers / mime_types.rb下注册的Mime类型吗?