我为主页实现了规范网址,如下所示:我添加了这一行
<link rel='canonical' href='https://example.com/'>
我在index.html.erb
部分header
上添加了这一行。它工作正常。
现在我有动态路由生成线,如下所示:
<a href "<%= search_equipments_path(:category_id => category.id) %>">
我尝试了以下内容:
<a rel='canonical' href="<%= search_equipments_path(:category_id => category.slug) %>">
但没有工作。
答案 0 :(得分:4)
我们可以通过这种方式在rails中设置规范标签。此rails代码将输出完整当前url的规范标记。在HTML head部分的布局中添加它。
<link rel="canonical" href="<%= url_for(:only_path => false) %>" />
您还可以使用以下命令指定要用于此URL的默认协议:
<link rel="canonical" href="<%=url_for(:only_path => false, :protocol => 'https')" />
有关更多选项,请参阅此link
希望这有帮助。
答案 1 :(得分:3)
您可以使用content_for
在布局的标题部分中创建动态块:
# app/views/layouts/application.html.erb
<!DOCTYPE html>
<html>
<head>
# ...
<% if content_for?(:canonical_url) -%>
<%= tag :link, href: content_for(:canonical_url), rel: 'canonical' %>
<% end -%>
</head>
</html>
然后,您可以在观看中提供canonical_url
:
<%= provide(:canonical_url, search_equipments_url(category.slug)) %>