代码之家  ›  专栏  ›  技术社区  ›  aronmoshe_m

使用没有src属性的image\u tag helper?

  •  0
  • aronmoshe_m  · 技术社区  · 6 年前

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

    我最初是这样写的(见下文),直到我需要删除 src 属性,并将其替换为 data-lazy image_tag 帮手:

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

    我想知道我是否要用 image_path 而不是 图像标签

    谢谢您!我通常不使用rubyonrails,但我一直在为一个项目学习它,我在这里作为前端开发人员工作。

    1 回复  |  直到 6 年前
        1
  •  3
  •   spickermann    6 年前

    查看的源代码 image_tag 我很惊讶,似乎不可能用这种方法来生成 img 不带标记的标记 src 属性。但后来我意识到 属性是必需的 img公司 标签由 HTML specification .

    因此,我认为最好的选择是生成一个 img公司 src公司 值,如果您的延迟加载库支持该值。

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

    当您不关心无效的HTML时,您可以考虑编写 使用的块语法手动标记 link_to

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