Я использую маршрутизатор приложений Next.js 14 на Vercel с компонентами Mantine. Я использую Next.js Links полиморфно с компонентами Mantine, как описано здесь. Это работало нормально, но в недавних развертываниях для изменений, которые не затрагивали эти Link и не обновляли какие-либо соответствующие пакеты, некоторые Link начали выполнять полностраничные перезагрузки. Это происходит только на развернутом сайте Vercel, без использования next dev или next build && next start локально.
Вы можете увидеть поведение кнопки на главной странице моего сайта: сайт / код.
Однако в других местах проблема не возникает. Например, кнопка на моей не найденной странице: сайт / код. На этой кнопке происходит правильное перенаправление /organizers полностью на клиентскую сторону.
И домашняя страница, и не найденная страница экспортируются статически, и эти Link отправляются в одно и то же место, поэтому я не понимаю, в чем разница, вызывающая проблему. Кто-нибудь знает, как такая проблема может возникнуть: 1) только при развертывании Vercel и 2) только на определенных ссылках?
Я провел обширный поиск в Интернете по этой проблеме, и, хотя она всплывала во многих местах, я не нашел ничего, что относилось бы конкретно к моему проекту.
PS: Хотя мой сайт общедоступен, это незавершенная версия с фиктивными данными, чтобы избежать путаницы 😅
@clxrity - хм, мой / маршрут не force-dynamic. Кроме того, /organizers уже давно есть force-dynamic, но эта проблема появилась только в последних коммитах :/
Кроме того, как это связано с тем фактом, что проблема возникает только при развертывании на Vercel, а не при создании и размещении сайта на моем локальном компьютере?





Это произошло потому, что я использовал /api в качестве имени папки для действий на сервере, и это зарезервированный каталог, имеющий особое значение для функций Vercel: https://vercel.com/docs/functions/quickstart#create- ан-апи-маршрут
Я выбрал другое имя для каталога, и проблемы со сборкой и Link были решены!
Я считаю, что это как-то связано с тем, что ваш маршрут
/и/organizersравен'force-dynamic', и здесь файлloading.tsxможет пригодиться. Поскольку вашnot-found.tsxстатичен,<Link />внутри этого компонента предварительно выбирает этот маршрут. Полезные ссылки: Связывание и навигация (предварительная загрузка) & Сегменты маршрута