17

コードは次のとおりです。

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

...しかし、FireBug をチェックインすると、結果の MIME タイプは text/html になります。この場合、MIME タイプを指定するにはどうすればよいですか?

4

5 に答える 5

35

実際には、コンテンツタイプを設定する方法は2つあります(これがmime-typeの意味だと思います)。Railsバージョンで機能する場合は、2番目のオプションを使用する必要があります。

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

お役に立てれば!

于 2008-11-18T21:48:36.590 に答える
16
render :file => @somedir + "/blah.xml", :content_type => Mime::XML
于 2009-07-09T11:04:14.683 に答える
3

どうですか

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

?お役に立てば幸いです。

于 2008-11-18T21:48:54.080 に答える
2

こちらをご覧ください。基本的に、render:xml=>blah.to_xmlを使用する必要があります

于 2008-11-18T20:33:45.120 に答える
0

http://api.rubyonrails.org/classes/Mime/Type.htmlに従って、次のように指定できます。

render file: @somedir + "/blah.xml", mime_type: Mime::Type.lookup("text/xml")  
于 2018-07-16T05:37:19.853 に答える