Лучший подход для приложения с +150 тыс. Статических страниц?

У меня есть приложение MERN, в которое я интегрировал NextJS. Впервые с NextJS, так что несите меня. Я изначально везде использовал SSR ( getServerSideProps

).

Ключевые моменты:

  • У меня более 150 000 страниц со статическим контентом, который никогда не изменится.
  • Каждую неделю я добавляю около 100 новых страниц.

Я думаю, что в идеальной ситуации здесь было бы использовать getStaticProps

и getStaticPaths и после первоначальной сборки этих 150 тыс. страниц просто создавайте новые добавленные страницы каждую неделю и сохраняйте то, что я уже построил, как есть, поскольку оно никогда не изменится.

Как я могу этого добиться? Я должен использовать revalidate

здесь? Я читал об этом в документации, но не совсем понимаю.

1 ответ

Решение

Вы можете добиться этого, используя /.

revalidate используется в getStaticPropsдля инкрементальной статической регенерации - в случаях, когда вы хотите обновить существующие сгенерированные страницы. Что в вашем случае не то, что вам нужно, поскольку вы упомянули, что сгенерированные страницы никогда не изменятся.

Чтобы достичь желаемого и разрешить создание новых страниц, вы можете использовать или в getStaticPaths.

С путями, не созданными во время сборки, будет обслуживаться резервная страница по первому запросу, в то время как Next.js статически генерирует страницу. Когда это будет сделано, страница будет заменена с резервной страницы на фактическую полную страницу.

С fallback: blocking, пути, не сгенерированные во время сборки, будут ждать, пока HTML будет сгенерирован Next.js, а затем будут обслуживать страницу, как только это будет сделано. В отличие от fallback: true, поскольку нет возможности отката, рендеринг блокируется до тех пор, пока страница не будет создана.

В обоих случаях страница добавляется в список предварительно обработанных страниц. Последующие запросы по тому же пути будут обслуживать предварительно созданную страницу.

Обратите внимание, что ни один из этих вариантов не поддерживается next export, если вы зависите от этого.

Другие вопросы по тегам