Лучший подход для приложения с +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
, если вы зависите от этого.