【问题标题】:meta tag server side rendering元标记服务器端渲染
【发布时间】:2019-12-30 22:53:06
【问题描述】:

我正在使用react helmet,但在服务器端渲染方面有点迷茫。如果我在 google 控制台中查看元素,我可以看到标题和元描述,但在查看页面源时它们不存在。

我正在使用带有 express 的 Node.js 后端来创建 API。 React 应用程序只是一个从 Node.js API 获取数据的前端应用程序。

在 React 中我只有:

import { Helmet } from "react-helmet";
render() {
   return(
      <>
        <Helmet>
          <title>My site title</title>
          <meta name="description" content="Helmet application" />
        </Helmet>
      </>
    )
}

服务器端示例的direct link 显示了一些我真的不知道该怎么处理的代码。我认为“服务器”这个词让我很反感,因为我认为我需要在我的 Node.js 服务器上放置一些代码,但也许情况并非如此?

【问题讨论】:

  • 当您查看源代码时,将从您的服务器发送到您的浏览器的代码将被查看。由于您正在开发控制台中查看,如果它出现,那么您已经准备就绪
  • 那么,您是说我的问题中的代码足以让搜索引擎获取我的标题和元描述吗?
  • 啊,哎呀,如果是 SSR,你应该在源代码中看到它
  • 抱歉,什么是 SSR?
  • 服务器端渲染

标签: reactjs react-helmet


【解决方案1】:

确实,Helmet.renderStatic() 方法会收集与您请求的页面对应的所有标签。

如果您也想在服务器端查看这些标签(源代码),您需要在服务器文件中:

  1. 致电const helmet = Helmet.renderStatic()

  2. helmet得到helmet.title.toString()helmet.meta.toString()

  3. https://github.com/nfl/react-helmet#server-usage As string input 描述的那样将这些附加到您的HTML。

【讨论】:

  • 谢谢,亚历杭德罗。当您说“在您的服务器文件中”时,您指的是我正在运行的 Node.js API 后端吗?我正在使用 React 从 API 获取数据并将其呈现在前端。
  • 所以你没有在服务器端运行你的前端。这只是您正在使用的 API。那么您是否需要将这些标签放在页面源代码上。我想问题是,你需要 SSR 吗?
  • 我不知道,这就是为什么我问这个关于堆栈溢出的问题。我希望搜索引擎能够获取我的标题/元标记等,但以我目前的实现方式,我认为它们不会。
  • 我向你保证他们会的,谷歌正在使用最新版本的 chrome 来抓取网站。 searchengineland.com/… 所以你能看到的,他们也能看到。
  • 如果你还想实现它,这里有一个分步指南alligator.io/react/server-side-rendering
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 1970-01-01
相关资源
最近更新 更多