在轨

2008-11-18 35 views
17

MIME类型渲染文件下面的代码:在轨

render :file => @somedir + "/blah.xml" 

...但由此产生的MIME类型是text/html的时候我在Firebug检查。在这种情况下如何指定MIME类型?

回答

2

看一看here。基本上你需要使用render:xml => blah.to_xml

+0

谢谢,但请求没有扩展名,我认为responds_to使用扩展名来确定格式。我错了吗? – user38684 2008-11-18 21:01:27

34

实际上有两种方式来设置内容类型(我认为这是你的意思是通过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 

希望这会有所帮助!

+0

从文件名/路径MIME :: Types.type_for(“some.xml”)获取MIME类型的替代方法。first.content_type` – 2016-03-21 10:05:43

3

什么

headers["Content-Type"] = "text/xml" 

?希望有所帮助。

16
render :file => @somedir + "/blah.xml", :content_type => Mime::XML