- TIL -

구현 목표)

현재 프로젝트의 경우 www.random-chat.site 로 접속 시에는 정상적으로 React 프로젝트의 루트 경로가 정상적으로 서빙되지만

www.randocm-chat.site/randomchat 과 같은 경로는 정상적으로 React 프로젝트로 서빙되지 않고 아래와 같이 Nginx 의 404 페이지가 서빙되는

문제가 발생했다.

세부 경로를 표현하면 React 프로젝트의 내부 경로로 서빙되지 않는 모습

 

오늘은 세부 경로를 기입하고 이동할때 정상적으로 세부 경로로 서빙되게끔 nginx 를 세팅해 볼 것이다.

 

 

 

docker-compose.yml 파일 설정 변경)

더보기

 

세부 경로의 경우 nginx 에서 서빙해주는 부분이다 보니 직접적으로 nginx 의 html 부분의 파일들을 react 의 파일들과 매핑해주는 작업을

해야했다.

 

위와 같이 nginx 컨테이너 내부의 /usr/share/nginx/html 경로에 리액트의 빌드 파일을 볼륨으로 잡아 동일한 리액트 빌드 파일을 nginx 컨테이너에도 위치시켰다.

 

 

 

Nginx 의 nginx.conf 파일 설정 변경)

더보기

nginx.conf 작성

기존 코드 >> 변경 코드

 

 nginx.conf 파일 내에 리액트 프로젝트로 서빙해주는 location / 부분에

 

root 경로를 명시적으로 표현해주고, index 파일 또한 명시적으로 표현해주었다.

 

이후 try_files 를 통해 요청한 URI 의 파일이 존재하지 않을 경우 /index.html 로 해당 URI 를 리다이렉트하여

SPA 내에서 경로를 처리할 수 있게 도와주는 코드를 작성했다!

 

 

 

 도커 컴포즈 종료 및 재빌드

$ sudo docker-compose down
$ sudo docker-compose up --build -d

도커 컴포즈를 종료시킨 뒤 빌드 변경사항을 반영하여 다시 빌드

 

 

 

코드 반영 결과)

정상적으로 세부 주소로 서빙이 된다!

 

이 코드를 구현함으로써 대화가 종료된 이후 다시 초기 채팅방으로 돌아갈 수 있는 구조를 생성할 수 있게 되었다!

 

 

 

 

 

▼ 사이트 방문하여 확인하기 ▼

 

Random-Chat

 

www.random-chat.site

728x90

+ Recent posts