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

在Next.js中,为什么使用静态渲染_document.js包括getInitialProps,next.js,vercel,Next.js,Vercel,我对Next.js中的_document.js文件感到非常困惑,并想知道为什么它似乎违反了Next.js中的规则,即“getInitialProps将禁用自动静态优化” 显然,它并不像您在运行生产构建时看到的那样。结果输出声称页面将进行静态优化。因为页面总是通过_document.js运行,所以它们都不能静态优化 import Document, { Html, Head, Main, NextScript } from "next/document"; class MyD

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

显然,它并不像您在运行生产构建时看到的那样。结果输出声称页面将进行静态优化。因为页面总是通过_document.js运行,所以它们都不能静态优化

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
如果您进行异步调用以获取数据,则将禁用自动静态优化。在上面的示例中,它不会阻止创建静态页面