我有一个启用了turbo链接的Rails 4应用程序,但是当更改页面(不是完全刷新)时,我无法获取元标记来刷新.我读到元标签需要包含在加载turbo链接的
JavaScript之前,但是它没有任何效果.完全刷新工作,但不幸的是,这不是我搜索的.
布局/ application.html.haml
%html %head %title= "Title" - if content_for?(:Meta_description) %Meta{content: (yield :Meta_description),name: "description"}/ %Meta{content: (yield :Meta_keywords),name: "keywords"}/ = stylesheet_link_tag "application",media: "all","data-turbolinks-track" => true = javascript_include_tag "application","data-turbolinks-track" => true = csrf_Meta_tags %body{class: params[:controller].gsub("/","-"),id: 'top'} = render "shared/header" .body-content = render "shared/flash" = yield = render "shared/footer" = render "shared/analytics"
助手/ application_helper.rb
def Meta_tag(title,description)
06001
end
这就是我称之为他们
= Meta_tag('here s my title','and the keywords')
谢谢
解决方法
Turbolinks如何工作
Turbolinks旨在保持< head>标记相同,仅替换< body>通过AJAX请求标记所请求的页面的内容.由于您的< Meta>标签位于< head>中,不会通过Turbolinks请求进行更改.
SEO怎么样?
从SEO角度来看,您不必担心< Meta>标签在Turbolinks请求上进行更新,因为搜索引擎抓取工具将始终执行完整页面请求,并且不会执行Turbolinks JavaScript.
从用户角度来看,< head>中唯一的标签每个请求需要更改的是< title>标签,因此Turbolinks本身内置的特殊处理.
这个行为会不会改变?
这个“问题”已经被提出并被击倒了几次,每次被DHH自己宣布为非问题,所以我不会指望这个行为很快就会改变.
看到:
> https://github.com/rails/turbolinks/issues/81
> https://github.com/rails/turbolinks/pull/165