微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决具有 +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 不支持这两个选项,以防您依赖它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?