活动存储:在 video_tag 中显示视频

Active Storage: displaying video in video_tag

在 Rails 5.2 应用程序中,我想显示以前通过 Active Storage 在 S3 中上传的视频。当我使用这个时:

<%= video_tag [@banner_video.video_mp4, @banner_video.video_webm] %>

我收到这个错误:

The asset "" is not present in the asset pipeline.

我检查了控制台,我的变量@banner_video 正是我认为应该的。

我发现了一个不使用 video_tag 的解决方案,只是稍微修改了一下。

<video>
  <source src=<%= rails_blob_path(@banner_video.video_mp4) %> type="video/mp4" />
  <source src=<%= rails_blob_path(@banner_video.video_webm) %> type="video/webm" />
</video>

这是有效的,看起来 video_tag 没有处理远程源。

正如@metaphysiker所说 这也适用:<%= video_tag rails_blob_path(session.video) %>

2 个我用来让它工作的变体

  1. <%= video_tag url_for(@banner_video.file), size: "150x120", controls: true %>

或与获得 S3 url

  1. <%= video_tag @banner_video.file.service_url, size: "150x120", controls: true %>

来自

<%= video_tag rails_blob_path(@banner_video.video_mp4) %>