在 Next.js 中,为什么要静态渲染? _document.js 包括 getInitialProps

In Next.js, Why static render? _document.js includes getInitialProps

我对 Next.js 中的 _document.js 文件感到非常困惑,想知道为什么它似乎违反了 Next.js 中的规则,即“getInitialProps 将禁用自动静态优化”。

显然,它并不像您在 运行 生产构建时看到的那样。结果输出声称页面将被静态优化。由于从 运行 到 _document.js,其中 none 应该能够进行静态优化。

import Document, { Html, Head, Main, NextScript } from "next/document";

class MyDocument extends Document {
  static async getInitialProps(ctx) {
  const initialProps = await Document.getInitialProps(ctx);
  return { ...initialProps };
   }

   render() {
如果您进行异步调用以获取数据,

getInitialProps 将禁用自动静态优化。在上面的例子中,它不会阻止创建静态页面。