
CSPM 프로젝트 중 Next.js 14로 코드 작성이 끝난 후 아파치 서버에 배포 하면서 생긴 문제를 해결하면서 알아낸 방식을 정리해 보았다.
문제점 : .next 폴더만 올리면 서버에서 구동이 될 줄 알았으나 그렇지 않았다. JS, CSS 가 빠진 페이지만 보여줄 뿐 링크 또한 정상적으로 작동하지 않았다.
해결점 : build 옵션을 찾아보던중 output: export와 output: standalone 두 방식으로 해결함
그럼 export와 standalone 방식에 대한 차이점에 대해서 설명하겠다.
Next.js 애플리케이션을 정적 사이트로 내보내는 방식입니다. 서버에서는 페이지를 정적 HTML 파일로 생성하여 브라우저로 내보낸다.
// next.config.js
module.exports = {
output: 'export',
};
```CSPM 프로젝트에서 최종적으로 선태가한 방법 입니다.
Next.js 애플리케이션을 독립 실행형 애플리케이션으로 배포하는 방식입니다. 이 설정을 사용하면 Next.js는 애플리케이션과 그 종속성을 독립 실행형 폴더로 번들링 합니다.
이 방식은 서버사이드 렌더링을 지원하며, Node.js 환경이 필요합니다.
//next.config.js
module.exports = {
output: 'standalone',
};
빌드가 완료가 된후 .next/standalone 디렉토리가 생성된다.
public 폴더와 .next/static를 standalnoe 폴더 구조에 알맞은 곳에 위치시키고 standalone 폴더를 배포할 곳에 위치 후 node server.js를 입력하면 배포가 완료된다.