問題は、ターボリンクを使用する方法と、各ページに固有のメタ タグを使用する方法です。
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 のターボリンクの問題を読み、他の人が質問をしましたが、解決策が見つかりませんでしたか? うまくいけば、明らかな何かが欠けています。