SEO/Rails - 如何在每个“link_to”中添加标题标签

10

我很惊讶Rails的创造者没有考虑到这一点,如果有人能帮忙,那就太好了。

我们应该怎么做才能改变这个呢:

<%= link_to "My Title", :controller => "products" %>

自动执行此操作:

<%= link_to "My Title", :controller => "products", :title => "My Title" #basically a copy of the text %>

我认为这可以大大帮助SEO。

非常感谢!

Alex


4
这样做完全不利于搜索引擎优化(SEO),反而会增加一堆丑陋的工具提示,并在屏幕阅读器用户面前重复很多信息。如果需要提供额外信息但无法包含在链接文本中或者不重要,可以使用title属性。请勿采用前一种方法。 - Quentin
我很惊讶你想这样做,难道链接文本不够吗...? - Matti Virkkunen
David的回答很有道理,但我以前有过这样的经历。重复文本比留空标题标签要好。而且我没有时间为所有链接指定“附加信息”。感谢你们两个的关注。 - Alextoul
没有标题标签?那和标题属性有什么关系呢?“我之前有过这方面的经验”是什么意思?o_O - Matti Virkkunen
3个回答

15

9

你的问题非常合理,我不知道为什么有人给你点了负分,但是,rails的创建者确实考虑过这个问题。实际上,你可以用一种非常简单的方法来解决,而不需要使用自定义方法使它变得复杂:

<%= link_to "Link", { :action => "show" }, { :title => "Title" } %>

您实际上可以添加任何参数,而不仅仅是标题。
希望这可以帮助您!

-5

试试这样的东西

def link_to_with_autotitle(title, args = {})
  link_to_without_autotitle(title, args.merge(:title => title))
end
alias_method_chain :link_to, :autotitle

我还没有测试过这段代码,也不记得确切的link_to规范,但我想你应该明白我的意思。


1
args.merge(:title => title)实际上会覆盖args中的标题,如果已经指定了一个标题的话。{ :title => title }.merge(args)应该是正确的。 - Manuel Meurer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接