HTML5 VIDEO无法在我的rails 3应用中运行

我正在尝试在开发中的Rails 3应用程序中显示HTML5video,我正在使用Sqlite3和默认网络服务器(Webrick)。我将video文件(movie.ogg)放在资产(assets / movie.ogg)下。video窗口屏幕显示但是那里没有video。我有3个问题…由于rails app资产没有video子文件夹(就像它有图像的方式),你在哪里放video文件? Webrick是否支持Html5video?以下是我的代码,我在这里缺少什么才能使video正常工作?

视图

 

配置/初始化/ mime_types.rb

  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" }) 

video_tag帮助程序构建HTML 5 标记。

默认情况下,文件是从公共/video加载的。 要从资源/video加载,请将以下行添加到config / application.rb文件中:

 config.assets.paths << "#{Rails.root}/app/assets/videos" 

标签用法:

 <%= video_tag (["movie.mp4", "movie.ogg", "movie.webm"] :size => "320x240", :controls => true, :autobuffer => true) %> 

资产管道用于静态资产。 如果您经常将video文件添加到应用中,则应将其放在其他位置(例如, public/videospublic/system/videos )。 如果它们确实是静态资产,请尝试首先重新启动服务器。

假设您的html是正确的,除非在rails 3.1中使用资产管道发生显着变化,公共文件夹中包含的任何内容都可以从Web服务器提供,因此存储video的确切位置取决于您。 根据您上面的消息来源,您应该将您的video放在公共/资产中,然后通过访问http:// localhost:3000 / assets / movie.mp4 (或video的任何其他srcurl)确认video正在提供。

要在Rails 4中将video作为静态资源提供,最好的方法是使用video标记:

只需在“资产”中创建一个名为“video”的文件夹,然后将video存储在那里:

 app/assets/videos/mycoolvideo.mp4 

然后在你的意见:

 <%= video_tag "mycoolvideo.mp4" %> 

如果您需要指定大小,海报图片或添加控件,请添加(但这是HTML,而不是Rails):

 <%= video_tag "mycoolvideo.mp4", width: "640", height: "480", poster: "mycoolvideo.jpg", controls: true %> 

请注意,Rails巧妙地知道图像位于图像文件夹中,因此指定名称就足够了,而无需在图像名称之前添加图像/或assets / images /。

如果你想传入许多video(或更好地说,不同格式的同一video),传递一个数组:

 <%= video_tag ["mycoolvideo.mp4", "mycoolvideo.ogg", "mycoolvideo.webm"], size: "620x480", controls: true %> 

请注意,对于尺寸调整,您可以使用尺寸:“widthxheight”(“640×360”)或单独使用尺寸:和宽度: