Nextjs v.10 getstaticprops «revalidate» перестает работать с контейнером докеров
во-первых, я не специалист по развертыванию докеров.
У меня проблема в том, что функция повторной проверки внезапно перестала работать и снова будет работать только в том случае, если я перезапущу контейнер докеров. Например, Запас на одном из товаров не изменился.
Веб-приложение, созданное с использованием nextjs v.10, это веб-приложение для электронной коммерции, а данные были получены из другого веб-приложения, а именно wordpress, которое в основном служило только данными.
Короче говоря, nextjs как интерфейс развернут в контейнере докеров на vultr vps И wordpress как бэкэнд. Функция повторной проверки работает около 1 месяца, и мне нужно воспроизвести или перезапустить контейнер докеров, чтобы функция повторной проверки снова заработала.
Я не совсем уверен, связана ли эта проблема с nextjs, vultr или docker. Может ли кто-нибудь предложить решение или что-то еще? Я очень признателен, если кто-то может мне с этим помочь. Спасибо.
2 ответа
Статическая регенерация (флаг повторной проверки для getStaticProps) необходима для запуска сервера NextJs. Как вы сказали, в вашем случае он уже настроен и работает в течение месяца. Поэтому я думаю, что это вызвано какой-то ошибкой на вашем сервере nextjs, и он перестал работать. Пожалуйста, проверьте логи сервера nextjs.
Некоторый код был бы полезен, а также журналы, если там что-то есть.
Вы можете начать отладку этого, добавив логирование в начало файла. Если появляется сообщение журнала, значит, недействительность срабатывает и запускается, но позже может произойти сбой до фактического обновления кеша.
Также обратите внимание, что по истечении времени ожидания повторной проверки запрос первой страницы будет старым, поэтому вам потребуется дважды обновить страницу, чтобы увидеть обновленную информацию. Также, если
getStaticProps
не работает, будет использована старая кешированная страница.
Когда делается запрос к странице, которая была предварительно отрисована во время сборки, она сначала покажет кешированную страницу.
Любые запросы к странице после первоначального запроса и до 10 секунд также кэшируются и мгновенно.
После 10-секундного окна следующий запрос по-прежнему будет показывать кешированную (устаревшую) страницу.
Next.js запускает регенерацию страницы в фоновом режиме.
После успешного создания страницы Next.js сделает кеш недействительным и покажет обновленную страницу продукта. В случае сбоя фоновой регенерации старая страница остается неизменной.
Источник: https://nextjs.org/docs/basic-features/data-fetching#incremental-static-regeneration