我从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>
NextJs中的这些正常吗?我担心在实时模式下,下一计数错误会使我的SEO,功能和其他功能失效。
答案 0 :(得分:6)
经过数小时的调试和谷歌搜索,终于找到了根本原因。
事实证明,Head标记内不允许使用div。 Head内的任何div(或生成div的React组件),它将导致Head呈现在Body内。 Head内有一个GoogleTagManager组件,该组件返回div块。删除后,一切正常,并且Head可以按预期正确渲染。