具有 +150k 静态页面的应用程序的最佳方法?

问题描述

我有一个集成了 NextJS 的 MERN 应用程序。第一次使用 NextJS,请耐心等待。我最初在任何地方 (getServerSideProps) 都使用了 SSR。

要点:

我想这里的理想情况是使用 getStaticPropsgetStaticPaths,并且在最初构建这 150k 个页面后,每周构建新添加页面并保留我已经构建的页面因为它永远不会改变。

我怎样才能做到这一点?我应该在这里使用 revalidate 吗?我一直在文档中阅读它,但我并不完全理解它。

解决方法

您可以使用 getStaticProps/getStaticPaths 实现这一点。

revalidategetStaticProps 中用于 Incremental Static Regeneration - 在您想要更新现有生成的页面的情况下。在您的情况下,这不是您想要的,因为您提到生成的页面永远不会改变。

要实现您想要的,并允许生成新页面,您可以在 getStaticPaths 中使用 fallback: true or fallback: blocking

使用 fallback: true 时,未在构建时生成的路径将在第一个请求时提供后备页面,而 Next.js 静态生成页面。完成此操作后,页面将从备用页面切换到实际的完整页面。

使用 fallback: blocking,构建时未生成的路径将等待 Next.js 生成 HTML,然后在完成后提供页面。与 fallback: true 不同,由于没有回退,因此在页面生成之前呈现会被阻止。

在这两种情况下,页面都会被添加到预渲染页面列表中。对同一路径的后续请求将提供预先生成的页面。

请注意,next export 不支持这两个选项,以防您依赖它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...