ruby-on-rails – Rails 4和Turbolinks – Meta标签没有改变

我有一个启用了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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...