exportPathMap (Deprecated)

이 기능은 next export에만 독점적으로 사용되며, 현재는 pagesgetStaticPaths 또는 appgenerateStaticParams를 사용하는 것이 권장됩니다.

예시

exportPathMap을 사용하면 내보내기 중에 요청 경로를 페이지 대상으로 매핑하는 것을 지정할 수 있습니다. exportPathMap에 정의된 경로는 next dev 사용 시에도 사용할 수 있습니다.

다음 페이지가 있는 앱에 대한 맞춤형 exportPathMap을 만들기 위한 예제를 시작해 봅시다:

  • pages/index.js
  • pages/about.js
  • pages/post.js

next.config.js를 열고 다음과 같은 exportPathMap 설정을 추가합니다:

next.config.js
module.exports = {
  exportPathMap: async function (
    defaultPathMap,
    { dev, dir, outDir, distDir, buildId },
  ) {
    return {
      '/': { page: '/' },
      '/about': { page: '/about' },
      '/p/hello-nextjs': { page: '/post', query: { title: 'hello-nextjs' } },
      '/p/learn-nextjs': { page: '/post', query: { title: 'learn-nextjs' } },
      '/p/deploy-nextjs': { page: '/post', query: { title: 'deploy-nextjs' } },
    }
  },
}

참고: exportPathMapquery 필드는 자동 정적 최적화된 페이지 또는 getStaticProps 페이지에서는 사용할 수 없습니다. 이러한 페이지는 빌드 타임에 HTML 파일로 렌더링되며 추가적인 쿼리 정보는 next export 동안 제공할 수 없습니다.

페이지는 HTML 파일로 내보내집니다. 예를 들어, /about/about.html이 됩니다.

exportPathMap은 두 개의 인수를 받는 async 함수입니다. 첫 번째는 Next.js에서 사용하는 기본 맵인 defaultPathMap입니다. 두 번째 인수는 다음을 포함하는 객체입니다:

  • dev - exportPathMap이 개발 중에 호출될 때는 true이고, next export를 실행할 때는 false입니다. 개발 중에는 exportPathMap이 경로를 정의하는 데 사용됩니다.
  • dir - 프로젝트 디렉터리의 절대 경로
  • outDir - out/ 디렉터리의 절대 경로 (-o로 구성 가능). devtrue일 때는 outDir 값이 null이 됩니다.
  • distDir - .next/ 디렉터리의 절대 경로 (설정 가능한 distDir 설정)
  • buildId - 생성된 빌드 ID

반환된 객체는 pathnamekey이고 value는 다음 필드를 수락하는 객체인 페이지의 맵입니다:

  • page: String - 렌더링할 pages 디렉터리 내부의 페이지
  • query: Object - 사전 렌더링 시 getInitialProps에 전달되는 query 객체. 기본값은 {}

내보내진 pathname은 파일명일 수도 있습니다(예: /readme.md). 하지만 .html과 다른 경우 콘텐츠를 제공할 때 Content-Type 헤더를 text/html로 설정해야 할 수도 있습니다.

트레일링 슬래시 추가

페이지를 index.html 파일로 내보내고 트레일링 슬래시가 필요하도록 Next.js를 구성할 수 있습니다. /about/about/index.html로 바뀌며 /about/를 통해 라우팅됩니다. 이것은 Next.js 9 이전의 기본 동작이었습니다.

다시 전환하고 트레일링 슬래시를 추가하려면 next.config.js를 열고 trailingSlash 설정을 활성화하세요:

next.config.js
module.exports = {
  trailingSlash: true,
}

출력 디렉터리 사용자 지정

next export는 기본 출력 디렉터리로 out을 사용합니다. 다음과 같이 -o 인수를 사용하여 이를 사용자 지정할 수 있습니다:

Terminal
next export -o outdir

경고: exportPathMap을 사용하는 것은 더 이상 권장되지 않으며, pages 내부의 getStaticPaths로 대체되었습니다. 이 둘을 함께 사용하는 것은 권장되지 않습니다.