如何使用turbolinks并为每个页面特定的元标记用于搜索引擎优化?

Joa*_*hes 1 jquery coffeescript turbolinks ruby-on-rails-4

问题是如何使用turbolinks并且每个页面都有特定的元标记?

这是application.js:

//= require jquery
//= require jquery_ujs
//= require jquery.turbolinks
//= require dashboard
//= require turbolinks
Run Code Online (Sandbox Code Playgroud)

这是应用程序布局视图:

<title><%= yield_or_default(:title) -%></title>
<meta name="description" content="<%= yield_or_default(:meta_desc) -%>">
<meta name="keywords" content="<%= yield_or_default(:meta_keywords) -%>">
<meta name="robots" content="<%= yield_or_default(:robots) -%>">
<%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Run Code Online (Sandbox Code Playgroud)

这是仪表板CoffeeScript:

jQuery ->
  $("#list_tags").html(list_tags())

list_tags = ->  
  "Title: \"" + $('title').text() + "\"<br />" +
  "Meta Description: \"" + $('meta[name=description]').attr('content') + "\"<br />" +
  "Meta Keywords: \"" + $('meta[name=keywords]').attr('content') + "\"<br />" +
  "Robots: \"" + $('meta[name=robots]').attr('content') + "\""
Run Code Online (Sandbox Code Playgroud)

在应用程序布局的顶部:

<%= link_to "Dashboard", root_path -%>
<%= link_to "Reports", reports_path -%>
etc...
Run Code Online (Sandbox Code Playgroud)

当您在仪表板和报告之间来回点击时,标题标签会随着您的预期而每次点击都会发生变化(每次都会更新标题),但是在您进行整页刷新之前,元标记不会更改.

我怎样才能破坏特定头部元件的涡轮连接?

如果我在每个链接上添加data-no-turbolink到具有唯一元信息的页面,我看不出保持turbolinks会带来什么好处.

我在github上阅读了turbolinks的问题,其他人也提出了问题,但我没有看到解决方案?希望我错过了一些明显的东西.

Hop*_*eam 6

我不认为turbolink会对SEO产生影响.原因是因为搜索引擎机器人没有点击启用了javascript的链接.

他们创建一个链接列表并分别访问它们以获取页面的内容...因此页面搜索引擎机器人将不会在"点击的turbolinks链"中.

使用您网站的人在浏览您的网站时可能无法使用元描述标记.