在 Next.js 中,为啥要静态渲染? _document.js 包括 getInitialProps
Posted
技术标签:
【中文标题】在 Next.js 中,为啥要静态渲染? _document.js 包括 getInitialProps【英文标题】:In Next.js, Why static render? _document.js includes getInitialProps在 Next.js 中,为什么要静态渲染? _document.js 包括 getInitialProps 【发布时间】:2021-01-21 10:18:46 【问题描述】:我对 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()
【问题讨论】:
【参考方案1】:getInitialProps
如果您进行异步调用以获取数据,将禁用自动静态优化。在上面的例子中,它不会阻止创建静态页面。
【讨论】:
以上是关于在 Next.js 中,为啥要静态渲染? _document.js 包括 getInitialProps的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Django CMS doc'n example Hello Plugin 在渲染时向 hello 模型类添加 <projectname_> 前缀导致错误?