Nextjs
export const dynamic = 'force-dynamic' 란?
hovinee
2024. 7. 4. 17:16
Error fetching courses info: n [Error]: Dynamic server usage: Page couldn't be rendered statically because it used `cookies`. 라는 에러를 만났다.
stackoverflow를 찾아봤더니
export const dynamic = 'force-dynamic' 로 root page에 지정하면 된다고 나와있다.
그렇다면 export const dynamic = 'force-dynamic' 가 뭘까?
https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config
File Conventions: Route Segment Config | Next.js
Learn about how to configure options for Next.js route segments.
nextjs.org
가면 상세히 나와있다.
기본적으로 const dynamic은 auto이다. 그러나 force-dynamic으로 변경을 해야한다는 소리다.
- 'auto'(기본값): 구성 요소의 동적 동작을 방해하지 않으면서 최대한 많은 내용을 캐시하는 기본 옵션입니다.
- 'force-dynamic': 동적 렌더링을 강제로 실행하여 요청 시 각 사용자에 대한 경로가 렌더링됩니다. 이 옵션은 디렉토리 getServerSideProps()에서 와 동일합니다 pages.
즉 auto는 getStaticProps force-dynamic은 getServerSideProps이고 cookies를 정적으로 렌더링할 수 없다는 오류가 나왔기 때문에 force-dynamic으로 동적으로 렌더링을 해줘야한다.