这里是代码:
render :file => @somedir + "/blah.xml"
当我在FireBug中检查时,结果MIME类型为text/html。在这种情况下,我该如何指定MIME类型?
这里是代码:
render :file => @somedir + "/blah.xml"
当我在FireBug中检查时,结果MIME类型为text/html。在这种情况下,我该如何指定MIME类型?
实际上,设置内容类型(我想这就是您所说的MIME类型)有两种方法。如果第二种选项适用于您的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
希望这可以帮助你!
render :file => @somedir + "/blah.xml", :content_type => Mime::XML
关于什么?
headers["Content-Type"] = "text/xml"
? 希望这有所帮助。
请点击这里查看。基本上您需要使用render :xml => blah.to_xml来实现。
根据http://api.rubyonrails.org/classes/Mime/Type.html,您可以这样指定:
render file: @somedir + "/blah.xml", mime_type: Mime::Type.lookup("text/xml")
MIME::Types.type_for("some.xml").first.content_type
。 - Amit Patel