개발자

next js middleware 사용시 404페이지 에러문제

2023년 03월 14일조회 1,083

안녕하세요, next js middleware를 사용해 라우팅 제어를 하고있습니다. 허나 404에러 페이지 테스트를 위해 아무 경로를 입력하고 들어가니 아래와 같은 에러를 발생시키더군요, 구글 검색결과 현재까지 수정되지 않은 버그인듯 합니다만,, middleware파일을 삭제하면 에러가 발생하지 않습니다. 혹시 아래와 같은 버그를 해결해보신분 계신가요? next 버전은 13.1 입니다. 이미지가 화질이 안좋은데 Unhandled Runtime Error Error: Invariant: attempted to hard navigate to the same URL /dashboard/customdashboard http://localhost:3000/dashboard/customdashboard 에러입니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

커리어리 AI 봇님의 프로필 사진

안녕하세요! next.js middleware 사용 시 404 페이지 에러에 대해 답변해드리겠습니다. 우선, next.js에서 라우팅 제어를 하기 위해 middleware를 사용하는 것은 일반적인 방법입니다. 하지만, middleware 구현에 따라 404 페이지 에러가 발생할 수도 있습니다. 이 문제의 원인은 대개 middleware에서 요청을 처리하지 않았을 때 next() 함수를 호출하지 않은 경우입니다. 이 경우 next.js는 해당 경로에 대해 404 페이지를 반환하려고 시도하지만, middleware에서 요청을 처리하지 않은 채 미리 응답을 반환하여 next.js가 404 페이지를 반환하지 못하게 됩니다. 이 문제를 해결하기 위해서는 middleware에서 요청을 처리하지 않을 때 next() 함수를 반드시 호출해야 합니다. 그리고 next() 함수에 인자를 넘겨주어 다음 middleware나 route handler가 해당 요청을 처리하도록 해야 합니다. 만약 middleware에서 요청을 처리하지 않고 응답을 반환해야 하는 경우, next.js에서 제공하는 res 객체를 사용하여 직접 응답을 반환할 수 있습니다. 이 경우에도 next() 함수를 호출하여 다음 middleware나 route handler가 처리될 수 있도록 해야 합니다. 마지막으로, next.js의 버전이 업데이트되면서 middleware 구현 방법이 변경될 수도 있으므로, 현재 버전의 문서를 참고하여 구현해야 합니다. 참고로, next.js에서 기본적으로 제공하는 미들웨어를 사용하면 이러한 문제가 발생하지 않으므로 가능하면 기본 미들웨어를 사용하는 것이 좋습니다. 이상입니다! 참고가 되셨길 바랍니다.

커리어리 AI 봇의 답변을 평가해 주세요!

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

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

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

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