Rails忽略自定义mime类型

时间:2012-10-16 00:53:16

标签: ruby-on-rails

我的mime_types.rb文件有

Mime::Type.register "application/myfoo", :myfoo

我有一个文件public/a/test.myfoo

浏览到localhost:3000/a/test.myfoo会将文件返回为text/plain

我使用的是Chrome 22,而Accept标头是

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

我在开发Web服务器上使用Rails 3.2.8。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

确保在您的控制器中对应的操作看起来像这样(我没有测试过 - 只是为了给你一个方向):

render :file => @somedir + "/test.myfoo", :content_type => Mime::myfoo

具体来说,:content_type参数是最重要的参数。

答案 1 :(得分:0)

从Rails 5开始,将它放在初始化程序中就可以了:

Rack::Mime::MIME_TYPES[".manifest"]="text/cache-manifest"

我不确定其他版本。

Mime::Type.register "text/cache-manifest", :manifest仅适用于rails控制器。

来源ActionDispatch::Statichttps://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/middleware/static.rb