gpt4 book ai didi

ruby-on-rails - Rails 4 和 Turbolinks - 元标签不变

转载 作者:行者123 更新时间:2023-12-04 00:27:33 26 4
gpt4 key购买 nike

我有一个启用了 turbo-links 的 Rails 4 应用程序,但我无法在更改页面时刷新元标记(不是完全刷新)。我读到需要在加载 turbo-links 的 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)

content_for :meta_keywords do
title
end

content_for :meta_description do
description
end

end



我就是这样称呼他们的
= meta_tag('here s my title', 'and the keywords')

谢谢

最佳答案

Turbolinks 的工作原理

Turbolinks 旨在保持 <head>标记相同,仅替换 <body>通过 AJAX 请求标记所请求页面的内容。由于您的 <meta>标签位于 <head> ,它们不会通过 Turbolinks 请求进行更改。

搜索引擎优化呢?

从 SEO 的角度来看,您无需担心 <meta>在 Turbolinks 请求上更新标签,因为搜索引擎爬虫将始终执行整页请求并且不会执行 Turbolinks javascript。

从用户的角度来看,<head> 中唯一的标签需要为每个请求更改的是 <title>标签,因此 Turbolinks 本身内置了对此的特殊处理。

这种行为会改变吗?

这个“问题”已经被提出和驳回过几次,每次都被 DHH 自己宣布为非问题,所以我不会指望这种行为会很快改变。

看:

  • https://github.com/rails/turbolinks/issues/81
  • https://github.com/rails/turbolinks/pull/165
  • 关于ruby-on-rails - Rails 4 和 Turbolinks - 元标签不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19463978/

    26 4 0
    文章推荐: python-3.x - Python : Running nested loop, 2D 移动窗口,并行
    文章推荐: javascript - 正则表达式匹配一个额外的空组
    文章推荐: center - 如何使
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com