#javascript #next.js
Вопрос:
У меня есть это в моей функции getStaticProps:
getStaticProps() { const res = await axios({ method: "post", url: url }); let data = res.data; if (!data) return { notFound: true, }; return { props: { data: data || null }, revalidate: 5, }; }
Локально все работает нормально (когда в базу данных вносится обновление, оно отображается на веб-сайте), но в рабочей среде (веб-сайт находится на vercel) данные не проверяются даже после истечения периода повторной проверки, поэтому у меня в основном одни и те же данные, даже если они изменены в базе данных
Есть какие-нибудь идеи, в чем может быть проблема?
Комментарии:
1. Я бы предположил, что пример кода, которым вы поделились, не является источником проблемы, поэтому единственный способ, которым мы можем помочь, — это предоставить больше информации о окружающем проекте или поделиться большей частью кода, который может быть связан с «повторной проверкой».
2. Источником проблемы, скорее всего, является источник данных. В последний раз я сталкивался с этим, когда извлекал файлы (например, файлы уценки), которые были только в моей локальной разработке, но не в развернутой сборке на vercel. В getStaticProps вы вызываете свой собственный API (чего вам не следует делать) или какой-то внешний? Или как вы получаете доступ к базе данных в getStaticProps?
3. @maxeth Я вызываю api, который находится на другом сервере (написан на laravel, если это поможет)
4. @Astros Вы пробовали выполнить все этапы процесса запроса и посмотреть, зависят ли они от чего-то (
.env
возможно, от файла, который вы не добавили в свое развертывание vercel?), которого нет во время развертывания? Кроме того, вы должны попробовать регистрировать все запросы на сервере, чтобы проверить, запускается ли функция повторной проверки и достигает ли API или нет.