0

我有一个 Rails 应用程序,其中有一两个页面使用 html5 视频标签,以及相应的 Rails video_tag() 方法在页面上显示视频。

我已经添加

<%= video_tag "car_circle.mp4", width: "640", height: "500", controls: true %>

到视图中的 html.erb 文件。

Rails 3.2 在 /public 目录中查找视频,因此我将视频添加到名为public/videos的文件夹中。

为了将此文件夹添加到资产管道,我将此行添加到application.rb

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

这部分有效。视频资产会进行预编译,其中包含视频的页面实际上会加载。但是,视频本身没有。这是因为,虽然视频可以在各自的 URL 上观看,例如/videos/car_circle.mp4 ,但视频应该加载的页面上的视频 URI是/videos/car_circle-4e5f6739c10827a6fc3d479d1ac5c275.mp4 .

这是 Rails 在生产中添加到 URI 的 MD5 摘要。我需要我的视频 URI 来匹配视频所在页面上的摘要 URI。

到目前为止,我已尝试通过设置禁用消化

 config.assets.digest = true

为假。但是,不建议这样做,无论如何它都会使我的应用程序崩溃。

关于如何正确获取我的资产的任何建议?显然这只是生产中的一个问题,这是 Rails 默认使用摘要 URI 的唯一地方。非常感激。

4

2 回答 2

2

尝试使用纯 html 元素声明,如下所示:

<video width="640" height="500" control="controls">
    <source src="../../../public/videos/car_circle.mp4" type="video/mp4">
</video>

甚至.erb文件仍将接受纯 html 声明,该声明应不受任何 Rails 更改。

于 2012-10-01T14:20:01.553 回答
0

对视频标签使用纯 html 也对我有用。

我将视频文件保存在 public/videos 中

并将 html 引用为

<video autoplay="autoplay" loop="loop" src="/videos/test.mp4">

这对我来说很好。

于 2013-01-27T02:38:41.997 回答