视频 HTML 标签未显示在 Rails 中

Video HTML tag not showing in Rails

当我在 _blob.html.erb 中预览 blob 时,我可以预览图像,但嵌入视频时遇到困难。下面的 <video> 标记未显示在网页中。

如果我 运行 blob.service_url 函数并将其输出粘贴到 <source src="<%= blob.service_url %>" type="video/mp4"> 行中的位置,然后手动将视频标签粘贴到 Chrome HTML,视频播放器如我所愿出现,但我不明白为什么视频标签不能直接从 erb.html 文件编译。有谁知道为什么标签没有呈现?

  <% if blob.representable? %>
    <% if blob.video? %>
      <video width="1024" height="768" controls>
        <source src="<%= blob.service_url %>" type="video/mp4">
      </video>
      <%= blob.service_url %>
    <% else %>
      <%= image_tag blob.representation(resize_to_limit: local_assigns[:in_gallery] ? [ 800, 600 ] : [ 1024, 768 ]) %>
    <% end %>
  <% end %>

我已经在 post 的帮助下解决了我的问题:https://github.com/rails/rails/issues/36725

原来我需要修改我的配置,因为默认情况下不允许使用各种标签。在 application.rb 中,我需要添加:

config.after_initialize do
  ActionText::ContentHelper.allowed_attributes.add 'style'
  ActionText::ContentHelper.allowed_attributes.add 'controls'

  ActionText::ContentHelper.allowed_tags.add 'video'
  ActionText::ContentHelper.allowed_tags.add 'source'
end