NextJs项目版本从9.0.1升级到9.0.4的问题

时间:2020-03-03 02:56:55

标签: reactjs next.js

我从package.json将项目版本从9.0.1升级到9.0.4

"next": "9.0.4"

此项目升级的目的是使用9.0.4版NextJ中包含的内置压缩。

根据NextJs文档,我已经确保next / document的Head只在_document内部使用,而next / head的Head在其他任何地方都使用。

import Document, { Html, Head, Main, NextScript } from "next/document"; // For _document.js use only
import Head from "next/head"; // For every other pages and _app

此项目版本升级后,我注意到了几件事

首先,缺少下一个人数标签。当我在开发人员模式下运行时,它弹出此控制台错误

index.js:1 Warning: next-head-count is missing. https://err.sh/next.js/next-head-count-missing

我检查了一下,发现当next-head-count计数应该在head标签内呈现时,它已在body标签内呈现。

第二,我注意到链接标签和标题都同时显示在head和body标签中。

<head>
  // All the link tags rendered in here
</head>
<body>
  // next-head-count rendered in here 
  // Title tag in here
  // All the link tags rendered in here too
</body>

Double rendering issue

NextJs中的这些正常吗?我担心在实时模式下,下一计数错误会使我的SEO,功能和其他功能失效。

1 个答案:

答案 0 :(得分:6)

经过数小时的调试和谷歌搜索,终于找到了根本原因。

事实证明,Head标记内不允许使用div。 Head内的任何div(或生成div的React组件),它将导致Head呈现在Body内。 Head内有一个GoogleTagManager组件,该组件返回div块。删除后,一切正常,并且Head可以按预期正确渲染。