Резервные перезаписи Next.js не возвращают реквизиты из getServerSideProps при доступе через next/link на Vercel
У меня есть перезаписи, определенные в afterFiles: и запасной вариант: в next.config.js.
В моей локальной среде разработки оба набора перезаписей работают отлично.
Однако при работе на Vercel резервные перезаписи не работают должным образом с моими функциями getServerSideProps.
При прямом доступе к URL-адресам они работают нормально, но при нажатии на ссылку, которая ссылается на URL-адрес, страница отображается без каких-либо реквизитов на стороне сервера. Я попытался добавить console.log в серверный код, но он не выполняется при доступе через ссылку на резервное правило.
Например, следующие два правила перезаписи будут действовать совершенно по-разному, несмотря на перезапись в один и тот же файл и с похожими аргументами:
async rewrites() {
return {
beforeFiles: [
],
afterFiles: [
{
source: '/:country(usa)/:state/:city/:profile/',
destination: '/hotels/profile/?country=:country&state=:state&city=:city&profile=:profile&rw=true',
missing: [{ type: 'query', key: 'rw', value: 'true' }]
}
],
fallback: [
{
source: '/:country/:city/:profile/',
destination: '/hotels/profile/?country=:country&city=:city&profile=:profile&rw=true',
missing: [{ type: 'query', key: 'rw', value: 'true' }]
}
],
}
}
Если я настрою тег Link с href='/usa/texas/houston/profilename/' (правило afterFiles), страница будет загружена правильно и будут доступны реквизиты на стороне сервера.
Если я настрою другой тег ссылки с href='/france/paris/profilename/' (резервное правило), он загрузит страницу без каких-либо реквизитов на стороне сервера.
Если я нажимаю «Обновить» или напрямую посещаю URL-адрес /france/paris/profilename/, он работает нормально и получает реквизиты, как и предполагалось.
Если вместо этого я перенесу резервное правило в afterFiles, то все тоже будет работать нормально.
Таким образом, похоже, что в среде Vercel есть какая-то проблема с резервными правилами, которые не обрабатываются так же, как среда разработки.
Кто-нибудь сталкивался с чем-то подобным или имеет какие-либо предложения по дальнейшей отладке/обходу решения?