개발자
Next.js에서 첫 페이지를 index가 아닌 특정 라우트로 설정하려면 어떤 방법을 사용해야 할까요? 딱 접속했을 때 특정 라우트에서 처음 접속하게 하고 싶은 상황입니다. index.tsx에서 useEffect와 router.push를 사용하여 시도해 보았지만, 버그가 발생하는 것 같아 이 방법이 적절하지 않은 것 같더라고요... 다른 방법이 있을까요?
답변 3
https://nextjs.org/docs/api-reference/next.config.js/redirects 찾아보니 이런 방법이 있는데 제가 next.js를 사용해보지 못해서 테스트는 못했습니다
1module.exports = {
2 async redirects() {
3 return [
4 {
5 source: '/about',
6 destination: '/',
7 permanent: true,
8 },
9 ]
10 },
11}
익명
작성자
2023년 04월 13일
감사합니다 ㅠㅠ 직접 찾아봐 주시다니 정말 친절하시네요..
https://nextjs.org/docs/advanced-features/middleware 미들웨어를 사용하셔도 되고 다른분 댓글처럼 해도 될거 같네요 제 개인적인 의견으로는 아예 서브도메인을 다르게 가져가는거면 next.js에서 말고 인프라쪽에서 처리하는게 맞을거 같고 만약 next.js해야한다면 서버에서 처리하는 방식인 미들웨어를 쓸거 같아욥 클라이언트 라우터에서 처리하면 일단 브라우저를 거쳐야되서 seo적으로도 좋지 않을거 같습니다.
익명
작성자
2023년 04월 13일
아하 의견 감사합니다ㅜ 말씀해 주신 내용 기반으로 팀하고 잘 이야기 해 볼게요!!!
Next.js에서는 pages 폴더 내에 파일명에 따라 라우팅이 자동으로 처리됩니다. 이때, 파일명이 ' index '인 파일은 루트 경로(' / ')로 매핑됩니다. 따라서, 첫 페이지를 index가 아닌 특정 라우트로 설정하고 싶다면, 해당 라우트에 맞는 파일을 pages 폴더에 생성하면 됩니다. 예를 들어, ' /home ' 경로에서 첫 페이지를 보여주고 싶다면 ' pages/home.tsx ' 파일을 생성하면 됩니다. 또한, Next.js에서는 ' next.config.js ' 파일에서 설정을 변경할 수 있습니다. 예를 들어, 다음과 같이 ' next.config.js ' 파일에 설정을 추가하면 루트 경로(' / ') \를 ' /home ' 경로로 변경할 수 있습니다. 이렇게 설정하면 첫 페이지가 ' /home ' 경로에서 시작됩니다. 참고로, Next.js에서는 페이지가 서버에서 렌더링되기 때문에 ' useEffect '와 ' router.push '와 같은 클라이언트 측 코드를 사용하면 원하는 대로 작동하지 않을 수 있습니다. 이 경우, ' getInitialProps ' 또는 ' getServerSideProps '와 같은 서버 사이드 렌더링 메서드를 사용하여 해결할 수 있습니다.
1module.exports = {
2 async redirects() {
3 return [
4 {
5 source: '/',
6 destination: '/home',
7 permanent: true,
8 },
9 ]
10 },
11}
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!