getServerSideProps не отображает динамические страницы в рабочей среде и показывает ошибку 404
Я работаю с next.js, в режиме разработки все работает нормально, но в производственном режиме у меня проблема при динамическом рендеринге страниц. У меня есть следующий путь внутри папки страниц
pages/user/[id]
, и в этом компоненте я вызываю функцию getServerSideProps.
export async function getServerSideProps(context) {
const URL = 'https://somewhere...';
let { id } = context.params;
const apiResponse = await fetch(
`${URL}/${id}/detail`,
{
headers: headers,
}
);
if (apiResponse.ok) {
const data = await apiResponse.json();
return {
props: data, // will be passed to the page component as props
};
} else {
return { props: {} };
}
}
Моя проблема в следующем, мне нужно отправить
headers
токен аутентификации, который я получаю только при входе в систему и получаю код 2FA, поэтому в
build
время, эта информация не существует, и я получаю ошибку 401 без авторизации при выполнении
npm run build
и когда я получаю доступ к
/user/34
например, я получаю ошибку 404.
Я проверил эти вопросы в stackoverflow:
- NextJs: Статический экспорт с динамическими маршрутами
- https://stackoverflow.com/questions/61724368/what-is-the-difference-between-next-export-and-next-build-in-next-js#:~:text=After%20building%2C%20next % 20start% 20starts, can% 20serve%20with%20any%20host.& Text=js%20will%20hydrate%20your%20application, чтобы% 20give% 20it% 20full%20interactivity.
- next.js getStaticPaths перечисляет все пути или только те, которые находятся в непосредственной близости?
В моем приложении есть статические части, которые отлично работают, но проблема связана с динамическими путями, поскольку next.js не создает эти пути.
1 ответ
return {
props: data, // will be passed to the page component as props
}
реквизит должен быть объектом
return {
props: {data} // or props: {data:data}
}