【问题标题】:Active Storage: displaying video in video_tagActive Storage:在 video_tag 中显示视频
【发布时间】:2018-12-02 06:03:00
【问题描述】:

在 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 正是我认为应该的。

【问题讨论】:

  • 我猜你的问题是重复的。看看这个:stackoverflow.com/questions/46020753/…
  • 不,视频不在资产管道中,它托管在远程 S3 存储桶上。我显示的图像没有 pb。
  • 哦,你是对的。
  • @Ruff9 你如何上传到云端?你用什么?
  • 我确实设置了一个 ActiveAdmin 界面和一个带有文件类型字段的表单...我的应用程序通过 Active Storage 连接到我的 S3 存储桶,它就像图像的魅力。

标签: ruby-on-rails video rails-activestorage


【解决方案1】:

我找到了一个不使用 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 没有处理远程源。

【讨论】:

  • 如果您不知道内容类型可能被认为是至关重要的,则无需渲染视频。
  • 这也可以:
  • 您可以播放视频了吗?我只能显示预览,这只是视频的第一帧。我希望它真正发挥...
  • controls: true 让您能够预览。
【解决方案2】:

正如@metaphysiker 所说 这也适用:

【讨论】:

    【解决方案3】:

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

    1. &lt;%= video_tag url_for(@banner_video.file), size: "150x120", controls: true %&gt;

    或 with 获取 S3 url

    1. &lt;%= video_tag @banner_video.file.service_url, size: "150x120", controls: true %&gt;

    【讨论】:

      【解决方案4】:

      来自@Methaphysiker comment

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-24
        • 2019-01-01
        • 1970-01-01
        • 2014-11-04
        • 2019-02-19
        • 1970-01-01
        • 2017-04-29
        相关资源
        最近更新 更多