React 로 웹 페이지를 작업하고 있고, 간단하게 테스트 프로젝트를 배포하기 위해 Firebase Hosting 서비스를 자주 사용하고 있습니다.
# 문제
React환경에서 React Router를 사용하여 페이지를 보여주고 있는데요, 로컬 환경에서 잘 되던 페이지 이동이 Firebase Hosting에 올라가면 404 Page Not Found가 발생합니다.
무조건 발생한건 아니고 특정 /example/1 이런식의 / 루트가 아닌 경로로 접근해서 브라우저를 새로고침 하면 /example/1이라는 경로에 해당하는 파일이 없기 때문에 오류를 발생하는거죠.
# 문제해결
이런 오류를 해결하기 위해서는 React Router 환경에 맞게 firebase.json을 수정해줄 수 있습니다.
아래와 같이 rewrites 부분을 추가 하여 모든 요청에 대해서 /index.html 을 바라보도록 수정하면 해당 오류는 발생하지 않습니다.
{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}
이런 오류를 그냥 넘기지 말고 해결해두면 개발자의 입장에서 신뢰도가 올라갈 것이라고 생각합니다 :)