我看过很多关于设置MIME类型的主题。
但是,没有人帮助过我。
他是我的问题:
我有一个带有.ogv和.mov格式视频的Rails网站,位于/ public文件夹中。 我在HTML5视频标签中引用这些文件。
.mov文件没有问题,它们在WebKit浏览器中播放效果很好。
问题在于.ogv。
我认为,这是因为.ogv的错误MIME类型。
这是我得到的.mov(正确):
$ curl -I http:/mywebsite.com/video.mov
HTTP/1.1 200 OK
Date: Sun, 03 Apr 2011 19:57:41 GMT
ETag: "4d98744c-1bb-87563c0"
Last-Modified: Sun, 03 Apr 2011 13:21:16 GMT
Content-Type: video/quicktime
Content-Length: 443
这就是我得到的.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
而不是“application / octet-stream”,我需要“video / ogg”。
我有一个Mongrel服务器(没有Apache作为前端),正如我最近所知道的那样。所以,没有办法使用.htaccess。
我需要为常规文件设置MIME类型,从控制器等设置不响应。
我尝试了几种方法,在我之前的问题中进行了描述:HTML 5 video (ogv) and MIME types
但我不行。我仍然得到“application / octet-stream”。
我的问题是:
如何设置常规文件的mime类型,不来自控制器的响应?
Mongrel是否提供位于/ public目录中的文件或其他内容?
答案 0 :(得分:0)
我已经明白了。
我上一个问题中描述的所有方法都是为Rails环境设置MIME类型,而不是Mongrel。
我需要在Mongrel级别使用其他MIME类型,而不是Rails。
所以,通过启动mongrel ......
/usr/bin/mongrel_rails,
...我需要传递一个YAML文件,其中包含其他MIME类型,我想申报。此YAML文件可能如下所示(mongrel_mime_types.yml):
.ogv: video/ogg
.ogg: application/ogg
.ogx: application/ogg
为方便起见,我将它保存在/ 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