Next.js export 할 때 /_next/static 폴더 경로 설정 문제
안녕하세요?
최근에 제가 github.io에 제 포트폴리오 페이지를 새롭게 리뉴얼했었는데요.
Next.js 최신 버전과 Framer-Motion 등을 적용해서 나름 역동적이게 만들었습니다.
그래서 최종적으로 github.io에 static 파일로 업데이트하려고 했는데, 아래와 같은 문제가 발생했습니다.
위 그림처럼 페이지가 깨져서 보이는 겁니다.
이런 문제는 css 파일과 js 파일이 제대로 로드되지 않은 문제인 거죠.
그래서 실제 Next.js가 어떻게 build 후에 export를 하는지 알아보았습니다.
위 그림과 같이 경로 최상위에 '/'를 써서 절대 경로로 사용하고 있네요.
그런데 github.io는 이걸 인식 못하고 있습니다.
그래서 크롬 Devtools에서 맨 앞 절대 경로 '/'를 빼니까 잘 작동되더라고요.
그럼 Next.js export 할 때 어떻게 해야 할까요?
일일이 export 된 파일을 고치는 건 불가능하니까요.
next.config.js 파일에 다음과 같이 옵션을 주면 됩니다.
module.exports = {
assetPrefix: ".",
};
assetPrefix 옵션은 asset 관련 경로에 위에서 정한 값을 넣으라는 건데요.
이렇게 하고 next export 하면 아래와 같이 경로명 앞에 "."를 무조건 넣어줍니다.
<script
src="./_next/static/SAfl4nj0fgiMC88TrHu7s/_ssgManifest.js"
async=""
></script>
이제 다시 next build & export를 하고 github.io에 업데이트했습니다.
이제야 모든 자바스크립트나 CSS 파일이 로드가 제대로 되고 있네요.
감사합니다.