我有一个带有一两页使用html5视频标记的Rails应用程序,以及相应的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"
这部分有效。视频资产会进行预编译,其中带有视频的页面实际上会加载。但是,视频本身却没有。这是因为,虽然可以在各自的网址上查看视频,例如 /videos/car_circle.mp4 ,但视频的视频页面上的视频的URI应该是加载 /videos/car_circle-4e5f6739c10827a6fc3d479d1ac5c275.mp4 。
这是MD5摘要Rails添加到生产中的URI。我需要我的视频URI来匹配视频所在页面上的摘要URI。
到目前为止,我已尝试通过设置
来禁用摘要功能 config.assets.digest = true
为假。但是不推荐这样做,它无论如何都会让我的应用崩溃。
有关如何正确获取资产的任何建议吗?显然这只是生产中的一个问题,这是Rails默认使用digest'ed URI的唯一地方。非常感谢。
答案 0 :(得分:2)
尝试使用普通的html元素声明,如下所示:
<video width="640" height="500" control="controls">
<source src="../../../public/videos/car_circle.mp4" type="video/mp4">
</video>
即使.erb
文件仍然接受普通的html声明,该声明应该不受任何Rails的更改。
答案 1 :(得分:0)
使用普通html作为视频标签也对我有用。
我将视频文件保存在公开/视频中
并将html引用为
<video autoplay="autoplay" loop="loop" src="/videos/test.mp4">
这对我来说很好。