1

問題は、ターボリンクを使用する方法と、各ページに固有のメタ タグを使用する方法です。

application.js は次のとおりです。

//= require jquery
//= require jquery_ujs
//= require jquery.turbolinks
//= require dashboard
//= require turbolinks

アプリケーションのレイアウト ビューは次のとおりです。

<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 %>

ダッシュボードの 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') + "\""

アプリケーション レイアウトの上部:

<%= link_to "Dashboard", root_path -%>
<%= link_to "Reports", reports_path -%>
etc...

ダッシュボードとレポートの間でクリックを行ったり来たりすると、クリックするたびに表示されるタイトル タグが期待どおりに変更されます (ターボリンクは毎回タイトルを更新します)。ただし、メタ タグは、ページ全体を更新するまで変更されません。

特定のヘッド要素のターボリンクを破壊するにはどうすればよいですか?

独自のメタ情報を含むページに移動するすべてのリンクに data-no-turbolink を追加すると、ターボリンクを維持するメリットがわかりません。

github のターボリンクの問題を読み、他の人が質問をしましたが、解決策が見つかりませんでしたか? うまくいけば、明らかな何かが欠けています。

4

2 に答える 2

8

ターボリンクが SEO に影響を与えるとは思いません。その理由は、検索エンジン ボットが JavaScript を有効にしてリンクをクリックしないためです。

彼らはリンクのリストを作成し、それらに個別にアクセスしてページのコンテンツを取得します...したがって、検索エンジンボットが取得するページは、「クリックされたターボリンクのチェーン」にはなりません。

あなたの Web サイトを使用している人間が、サイトを閲覧しているときにメタ ディスクリプション タグを使用することはおそらくないでしょう。

于 2014-01-09T21:48:16.297 に答える
2

誰かが同じ混乱に陥った場合に備えて、私は自分の質問に答えて、ここに残しておきます。

メタ タグやその他のコード/スクリプトの「ターボリンクを無効にする」方法は、ターボリンクの前の <head> セクションにリストすることです。

これが私のために働いたものの要点です。

これにより、目的の更新された <head> セクションを含むページがレンダリングされますが、留意すべき点は、DOM がキャッシュされたままになるということです。

つまり、上記のコードは正しいです。それがどのように機能するかについての私の期待ではありません。

于 2013-09-07T17:41:55.840 に答える