我有一个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/cal_circle-4e5f6739c10827a6fc3d479d1ac5c275.mp4。
这是Rails在生产中添加到URI中的MD5摘要。我需要我的视频URI来匹配视频所在页面上的摘要URI。
到目前为止,我已经尝试通过设置来禁用消化
config.assets.digest = true
为false。然而,这是不推荐的,它使我的应用程序崩溃无论如何。
关于如何正确处理我的资产,有什么建议吗?显然,这只是生产中的一个问题,而生产是Rails默认使用摘要URI的唯一地方。非常感谢。
尝试使用如下的纯html元素声明:
<video width="640" height="500" control="controls">
<source src="../../../public/videos/car_circle.mp4" type="video/mp4">
</video>
即使是.erb
文件仍然会接受纯html声明,该声明应该不受Rails的任何更改。
使用纯html作为视频标签也对我有用。
我将视频文件保存在公共/视频中
并将html引用为
<video autoplay="autoplay" loop="loop" src="/videos/test.mp4">
这对我来说很好。