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으로 동적으로 렌더링을 해줘야한다.