Использование помощника image_tag без атрибута src? - PullRequest
0 голосов
/ 19 октября 2018

Это может быть очень простой вопрос, но как мне переписать это в Ruby?

<a href="https://yourlinkhere.com/" target="_blank" rel="noopener noreferrer"><img data-lazy="<%= image_path("assets/images/your-image.png") %>" alt="logo" /></a>

Первоначально я написал это так (см. Ниже), пока мне не понадобилосьудалить атрибут src из тега img и заменить его на data-lazy, чтобы воспользоваться функцией отложенной загрузки Slick - вот где я зависаю с помощником image_tag:

<%= link_to image_tag("assets/images/your-image.png", alt: "logo"), "https://yourlinkhere.com/", target: "_blank", rel: "noopener noreferrer" %>

Мне интересно, должен ли я здесь использовать image_path вместо image_tag, потому что я не включаю атрибут src ... если только нет способа использовать помощник image_tag иНЕ включать src?

Спасибо!Я обычно не работаю с Ruby on Rails, но я изучал его для проекта, над которым я работаю как разработчик внешнего интерфейса.В тупик здесь.

1 Ответ

0 голосов
/ 19 октября 2018

Глядя на исходный код image_tag Я был удивлен, что кажется невозможным использовать этот метод для генерации img тегов без атрибута src.Но затем я понял, что атрибут src необходим для тегов img согласно спецификации HTML .

Поэтому я думаю, что вам лучше всего создать тег img с пустым значением src, если это поддерживается вашей ленивой загрузочной библиотекой.

<%= link_to(
      image_tag('', alt: 'logo', data: { lazy: image_path('your-image.png') }), 
      'https://yourlinkhere.com/', 
      rel: 'noopener noreferrer', target: '_blank'
    ) %>

Когда вы этого не сделаетепозаботьтесь о некорректном HTML, тогда вы можете написать тег img вручную, используя синтаксис блока link_to.

<%= link_to(
      'https://yourlinkhere.com/', 
      rel: 'noopener noreferrer', target: '_blank') do %>
  <img alt="logo" data-lazy="<%= image_path('your-image.png') %>" />
<% end %>
...