2010-04-19 82 views
5

我與HTML5視頻播放走一走,在ERB下面的代碼片段:設置MIME類型在Rails開發的.ogv文件環境

<video id="movie" width="320" height="240" poster="/test.jpg" preload="none" controls=""> 
    <source src="/test.mp4" type="video/mp4; codecs=&quot;avc1.42E01E, mp4a.40.2&quot;"> 
    <source src="/test.ogv" type="video/ogg; codecs=&quot;theora, vorbis&quot;"> 
</video> 

MP4視頻流,剛剛從我的開發運行的服務器罰款環境變成了鉻。然而,firefox用海報圖像顯示視頻播放器,但帶有一個大X.問題似乎是雜種不確定mog類型是否爲ogv擴展並僅返回文本/平原,如捲曲所示:

$ curl -I http://0.0.0.0:3000/pr6.ogv 
HTTP/1.1 200 OK 
Connection: close 
Date: Mon, 19 Apr 2010 12:33:50 GMT 
Last-Modified: Sun, 18 Apr 2010 12:46:07 GMT 
Content-Type: text/plain 
Content-Length: 13652587 

那麼我在哪裏配置東西,以便返回正確的MIME類型?我嘗試了各種各樣的創造性尋找答案,但我能找到的最接近的東西是使用Mime :: Type.register,但是似乎只處理responds_to的東西,並沒有任何影響,當我嘗試它只是在案件。

那麼計算機設置? Mongrel配置? Rails應用程序配置?不太確定去哪裏看,也不是MIME類型的專家。我的開發環境是Mac,Rails 2.3.5。

回答

9

我有同樣的問題,發現這裏的解決方案:http://9elements.com/io/?p=306

我運行軌道2.3.5,所以我把下面的代碼在配置/初始化/ mime_types.rb然後重置我的服務器(我正在使用WEBrick進行本地開發)

Rack::Mime::MIME_TYPES.merge!({ 
    ".ogg"  => "application/ogg", 
    ".ogx"  => "application/ogg", 
    ".ogv"  => "video/ogg", 
    ".oga"  => "audio/ogg", 
    ".mp4"  => "video/mp4", 
    ".m4v"  => "video/mp4", 
    ".mp3"  => "audio/mpeg", 
    ".m4a"  => "audio/mpeg" 
}) 

現在,curl顯示了ogv文件的正確MIME類型。

+0

這工作就像一個魅力。完美的答案。謝謝Rayan。 – tmorse 2010-04-22 11:56:47

+0

不幸的是我沒有在iPad上爲我工作:S – 2014-12-03 12:14:22