Тег HTML видео не отображается в Rails - PullRequest
1 голос
/ 17 апреля 2020

При предварительном просмотре большого двоичного объекта в _blob. html .erb я могу просматривать изображения, но у меня возникают трудности с встраиванием видео. Тег <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 %>

1 Ответ

0 голосов
/ 18 апреля 2020

Я решил свою проблему с помощью этого поста: 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
...