以下是代码:
render :file => @somedir + "/blah.xml"
...但是当我签入FireBug时,生成的MIME类型是text / html。在这种情况下如何指定MIME类型?
答案 0 :(得分:34)
实际上有两种方法可以设置内容类型(我认为这就是你所说的mime-type)。如果它适用于您的Rails版本,则应使用第二个选项。
class FileController < ApplicationController
def index
filename = 'some.xml'
extname = File.extname(filename)[1..-1]
mime_type = Mime::Type.lookup_by_extension(extname)
content_type = mime_type.to_s unless mime_type.nil?
# 1
#headers['Content-Type'] = content_type
#render :file => filename
# 2
render :file => filename, :content_type => content_type
end
end
希望这有帮助!
答案 1 :(得分:16)
render :file => @somedir + "/blah.xml", :content_type => Mime::XML
答案 2 :(得分:3)
怎么样?
headers["Content-Type"] = "text/xml"
?希望有所帮助。
答案 3 :(得分:2)
看看here。基本上你需要使用render:xml =&gt; blah.to_xml
答案 4 :(得分:0)
每个http://api.rubyonrails.org/classes/Mime/Type.html都可以这样指定:
render file: @somedir + "/blah.xml", mime_type: Mime::Type.lookup("text/xml")