개발자

Next.js Dynamic Routing 관련 질문

2024년 08월 30일조회 52

현재 ./pages 폴더에서 page router로 라우팅 관리 중에 있습니다! id별 post 상세창 조회를 위해 ./pages/post-detail/[id].tsx 와 같이 작성했으나 Whitelabel Error Page This application has no configured error view, so you are seeing this as a fallback. Fri Aug 30 21:08:21 KST 2024 [67199a4f-4509] There was an unexpected error (type=Not Found, status=404) 만 발생합니다 참고로 ./pages/post-write.tsx 와 같은 파일은 정상 작동합니다 혹시 무엇이 문제일까요? 추가+) 혹시 Next.js 14에서 page router 방식을 사용하는것이 문제일지 궁금합니다

1//./pages/post-detail/[id].tsx
2import PostDetailPage from '@/pages/post-detail';
3
4export default PostDetailPage;
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

포크코딩님의 프로필 사진

SSR 동작 관련 함수나 설정들이 작성되어 있지 않은 것으로 예상됩니다. 발생 원인은 현재 구성하신 코드는 정적 생성인데, 동적 생성을 하려고 해서 그렇습니다. 14버전 이상을 쓰신다면 정말(아주 아주 정말) 필요한 경우가 아니라면 app router 사용을 권장드립니다.

profile picture

익명

작성자

2024년 09월 01일

라우터는 오류관련하여 앱라우터 방식이 문제인가 싶어서 변경했는데 다행히 next.config.mjs에서 설정된 path경로와 conflict 나서 생긴문제 더라고요..! 말씀해주신대로 다시 app라우터 방식으로 돌렸습니다!

포크코딩님의 프로필 사진

포크코딩

별빛상단 단주2024년 09월 01일

문제가 해결됬다니 다행이네요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 08월 30일

Next.js에서 Dynamic Routing을 사용하여 페이지를 로드하려면 먼저 페이지를 정의해야 합니다. 제가 이해한 바로는 `/pages/post-detail/[id].tsx` 파일이 비어 있거나 잘못된 코드를 포함하고 있는 것 같습니다. ```javascript import PostDetailPage from '@/pages/post-detail'; export default PostDetailPage; ``` 위 코드는 '/pages/post-detail' 경로에 있는 'PostDetailPage' 컴포넌트를 불러와서 기본으로 내보내는 과정인데요, 만약 '/pages/post-detail/index.tsx' 파일이 없거나 해당 파일에 'PostDetailPage'라는 기본 내보내기(default export)가 정의되어 있지 않다면 위와 같은 에러 메시지가 발생할 수 있습니다. 따라서 제 생각에는 다음 두 가지 가능성이 있겠습니다: 1) '/pages/post-detail/index.tsx' 파일이 존재하지 않아서 발생하는 문제입니다. 2) 'PostDetailPage'라고 하는 컴포넌트 혹은 함수가 '/pages/post-detail/index.tsx' 파일에서 기본 내보내기되고 있지 않아서 발생하는 문제입니다. 게다가 './pages/post-write.tsx'와 같은 파일들이 정상 작동한다면, 아마도 `./pages/post-[something]` 의 특징적인 패턴 때문일 수도 있겠습니다. Next.js는 이런 패턴을 통해 동적 이동을 다루는 방법을 파악하고 있습니다. 따라서 `./pages/post-detail/[id].tsx` 라는 파일 이름 대신에 `./pages/post/write.tsx` 또는 `./pages/post/detail/[id].tsx`와 같은 구조를 사용할 수 있습니다. 이것은 Next.js가 파일/폴더 구조를 기반으로 라우팅을 생성하기 때문입니다. 그런데 여기서 주의해야 할 점이 하나 있습니다. 위에서 언급한 `./pages/post/detail/[id].tsx`와 같은 경로 중 `[id]` 부분은 실제 id 값을 지정하는 것이 아닌, placeholder의 역할을 합니다. 따라서 이 위치에 동적으로 변경되는 각각의 포스트 id가 올 수 있도록 해야 합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!