Django
의 기본기도 완벽하지 않은 상태였지만 이번 기말 프로젝트라는 이유로 무조건 기간 내에 완성시켜야만 한다는 마음으로 배포까지 많은 시간을 투자했던 것 같다.
react
로 구현한 프론트엔드 폴더를 build
한 후 client
에 옮겨주었다. pythonanywhere
는 이 client
안에 있는 static
폴더에 접근하여 가져오는 형식을 제공했다. 그러나 pythonanywhere
으로부터 부여 받은 도메인에 들어가면 NOT FOUND 404
가 나오면서 화면에 아무것도 노출되지 않았다.
뒤늦게 알고보니 위 사진 속 static
과 build한 client
안의 static
과 다른 것이었다! 검색한 끝에 django
에서 python manage.py collectstatic
명령어로 해결할 수 있다는 것을 pythonanywhere
공식 홈페이지에서 발견할 수 있었다. 덕분에 NOT FOUND 404
는 클라이언트의 요청은 옳으나 서버 저장된 데이터의 경로 문제 때문에 발생할 수 있다는 걸 피부로 느낄 수 있었다.
저번에 만났던 CORS를 또 만났다. 하지만 이번엔 달랐다. Django
에는 이를 구원해줄 라이브러리가 있었다. 그 이름하여 django-cors-headers
.
https://github.com/adamchainz/django-cors-headers
각 리스트에 corsheaders
와 corsheaders.middleware.CorsMiddleware
를 추가해준다.
CORS_ORIGIN_WHITELIST
에 주소를 넣어주면 끝이지만.. 왠지 앞으로도 계속 만나게 될 CORS일 것 같은 느낌이 든다.