문서
App Router 사용하기
exportPathMap

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은 2개의 인수를 받는 async 함수입니다: 첫 번째는 Next.js가 사용하는 기본 맵인 defaultPathMap입니다. 두 번째 인수는 다음을 포함하는 객체입니다:

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

반환된 객체는 keypathname이고 value가 다음 필드를 받는 객체인 페이지의 맵입니다:

  • page: String - 렌더링할 pages 디렉토리 내의 페이지
  • query: Object - 미리 렌더링할 때 getInitialProps에 전달되는 query 객체. 기본값은 {}입니다.

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

후행 슬래시 추가

Next.js가 페이지를 index.html 파일로 내보내고 후행 슬래시를 요구하도록 구성할 수 있습니다. /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에 의해 재정의됩니다. 이들을 함께 사용하는 것을 권장하지 않습니다.