exportPathMap (Deprecated)
이 기능은
next export
에만 해당되며 현재pages
의getStaticPaths
또는app
의generateStaticParams
로 대체되어 더 이상 사용되지 않습니다.
예시
exportPathMap
을 사용하면 내보내기 중에 사용할 요청 경로와 페이지 대상의 매핑을 지정할 수 있습니다. exportPathMap
에 정의된 경로는 next dev
를 사용할 때도 사용할 수 있습니다.
다음과 같은 페이지가 있는 앱에 대해 사용자 정의 exportPathMap
을 만들어 보겠습니다:
pages/index.js
pages/about.js
pages/post.js
next.config.js
를 열고 다음 exportPathMap
설정을 추가하세요:
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" } },
};
},
};
알아두면 좋은 점:
exportPathMap
의query
필드는 자동으로 정적 최적화된 페이지 또는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
로 구성 가능).dev
가true
일 때outDir
의 값은null
입니다.distDir
-.next/
디렉토리의 절대 경로 (distDir
설정으로 구성 가능)buildId
- 생성된 빌드 ID
반환된 객체는 key
가 pathname
이고 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
설정을 활성화하세요:
module.exports = {
trailingSlash: true,
};
출력 디렉토리 사용자 정의
next export
는 기본 출력 디렉토리로 out
을 사용합니다. -o
인수를 사용하여 이를 사용자 정의할 수 있습니다:
next export -o outdir
경고:
exportPathMap
사용은 더 이상 사용되지 않으며pages
내부의getStaticPaths
에 의해 재정의됩니다. 이들을 함께 사용하는 것을 권장하지 않습니다.