상세 컨텐츠

본문 제목

[Netlify] React 프로젝트 배포하기 + Page Not Found 에러 해결

Programming/기타

by 겨리! 2023. 10. 10. 00:59

본문

 

 

며칠 전 개인 프로젝트 배포를 위해 Netlify를 사용했는데 이와 관련된 내용을 정리해보고자 한다!

 

 

✔ Netlify 선택 이유

내가 진행한 프로젝트는 정적인 웹 사이트이기 때문에 Netlify를 사용하여 배포를 하는 게 적당하다고 판단했다.

 

 

시작하기

로그인 후 Sites 쪽을 보면 이런 화면이 보일 것이다. 

 여기서 Import an existing project를 클릭

 

  Github에 올린 프로젝트를 배포할 것이니 Deploy with Github 클릭

 

  프로젝트 목록 중 배포할 프로젝트를 클릭한다.

 

빌드 관련 세팅하기

그럼 설정 페이지가 나오는데 여기서는 빌드를 위한 기본적인 설정을 해주면된다.

1) Branch to deploy 

배포할 브랜치를 선택할 수 있다.

 

2) Build command 

빌드 명령어를 입력해주면 된다.

나는 npm을 사용하고 있어 npm run build 명령어를 입력했다.

 

🧐참고

당시 잘 몰라서 이렇게 했는데 이대로 진행하면 빌드할 때 에러가 난다.

CI= npm run bulid

위처럼 해주어야 빌드가 제대로 된다. (=옆에 띄어쓰기 꼭 주의할 것!)

 

3) Publish directory

배포할 파일을 정하라는 건데 CRA에서는 build 라는 이름으로 폴더가 생성되므로 build 라고 입력해주면 된다.

 

 

환경 변수 설정하기

나는 카카오 공유하기 기능을 사용했기 때문에 카카오 SDK 키 값에 대한 환경변수를 따로 설정해야했다.

빌드 설정페이지에선 까먹고 그냥 넘어갔으므로 따로 수정을 해줬다.

 

 

 

 

✔ 사이트 이름 변경하기

General - Site details 에서 변경 가능

 

 

👾 문제

이러고 배포를 잘 했는데...

테스트를 해보니 새로고침시 Page Not Found 에러가 뜬다!

 

Page Not Found 에러가 발생한 이유 

React Route는 client에서 라우팅 처리를 한다.

따라서 root 페이지가 아닌 페이지에 접속 하게되면 netlify(server측)는 route를 처리하는 방법을 알지 못한다!

 

🔨 해결 방법

netlify는 이런 경우를 처리할 수 있도록 _redirects 파는 파일을 제공한다.

 

참고

https://docs.netlify.com/routing/redirects/rewrites-proxies/#history-pushstate-and-single-page-apps

 

Rewrites and proxies

Use rewrite rules to fetch a location behind the scenes while the URL in the visitor’s address bar remains the same. Proxy to another service or site.

docs.netlify.com

 

문서에서 알려주는 대로 프로젝트 public 폴더 내에  _redirects 파일을 생성 후 아래 내용을 추가해주면 끝!

/* /index.html 200

 

 


Reference

https://docs.netlify.com/

 

 

관련글 더보기

댓글 영역