Ruby on rails 为服务器设置MIME类型

Ruby on rails 为服务器设置MIME类型,ruby-on-rails,mongrel,mime-types,Ruby On Rails,Mongrel,Mime Types,我看过很多关于设置MIME类型的主题 但是,没有人帮助我 他是我的问题: 我有一个Rails网站,在/public文件夹中有大量.ogv和.mov格式的视频。 我在HTML5视频标签中引用了这些文件 .mov文件没有问题,它们在WebKit浏览器中运行良好 问题在于.ogv 我想,这是因为.ogv的MIME类型不对 以下是我为.mov(正确)得到的结果: 这是我得到的。ogv: $ curl -I http://mywebsite.com/video.ogv HTTP/1.1 200 OK D

我看过很多关于设置MIME类型的主题

但是,没有人帮助我

他是我的问题:

我有一个Rails网站,在/public文件夹中有大量.ogv和.mov格式的视频。 我在HTML5视频标签中引用了这些文件

.mov文件没有问题,它们在WebKit浏览器中运行良好

问题在于.ogv

我想,这是因为.ogv的MIME类型不对

以下是我为.mov(正确)得到的结果:

这是我得到的。ogv:

$ curl -I http://mywebsite.com/video.ogv

HTTP/1.1 200 OK
Date: Sun, 03 Apr 2011 19:22:20 GMT
ETag: "4d987dcf-379884-81c533dc"
Last-Modified: Sun, 03 Apr 2011 14:01:51 GMT
Content-Type: application/octet-stream
Content-Length: 3643524
我需要的不是“应用程序/八位字节流”,而是“视频/ogg”

我有一个混血服务器(没有Apache作为前端),这是我最近才知道的。所以,没有办法使用.htaccess

我需要为常规文件设置MIME类型,而不是来自控制器的响应等

我已经尝试了几种方法,如前一个问题所述:

但我不工作。我仍然得到“应用程序/八位字节流”

我的问题是:

  • 如何设置常规文件的mime类型,而不是控制器的响应

  • Mongrel是否提供位于/public目录中的文件或其他文件

  • 我已经弄明白了

    我在上一个问题中描述的所有方法都是为Rails环境设置MIME类型,而不是Mongrel

    我需要在Mongrel级别添加MIME类型,而不是Rails

    所以,通过启动mongrel via

    /usr/bin/mongrel_rails,
    
    …我需要向它传递一个YAML文件,其中包含我要声明的其他MIME类型。此YAML文件可能如下所示(mongrel_mime_types.yml):

    为了方便起见,我将其保存在/config/initializers中

    因此,通过启动Mongrel,我需要传递此文件:

    /usr/bin/mongrel_rails -m /path_to_my_project/http/config/initializers/mongrel_mime_types.yml
    
    现在,如果我用curl检查,我得到的是正确的MIME:

    $ curl -I http://mywebsite.com/video.ogv
    
    HTTP/1.1 200 OK
    Date: Mon, 04 Apr 2011 05:38:01 GMT
    ETag: "4d987dcf-379884-81c533dc"
    Last-Modified: Sun, 03 Apr 2011 14:01:51 GMT
    Content-Type: video/ogg
    Content-Length: 3643524
    
    /usr/bin/mongrel_rails -m /path_to_my_project/http/config/initializers/mongrel_mime_types.yml
    
    $ curl -I http://mywebsite.com/video.ogv
    
    HTTP/1.1 200 OK
    Date: Mon, 04 Apr 2011 05:38:01 GMT
    ETag: "4d987dcf-379884-81c533dc"
    Last-Modified: Sun, 03 Apr 2011 14:01:51 GMT
    Content-Type: video/ogg
    Content-Length: 3643524