Q&A

책을 따라하다가 막히는 부분이 있나요?
질문을 남겨주세요.

nginx에서 static 폴더를 사용할때 질문드립니다.

3 years, 5 months ago

why why

책에서는 빌드를 하고 나면 바로 static 폴더의 css파일과 이미지 사진이 적용이 되는데

이상하게 저는 빌드해도 적용이 안되네요.

docker-compose down -v로 전체를 삭제하고

docker-compose up -d로 적용하면 적용됩니다.

유지보수를 하면서 계속 데이터베이스까지 초기화하면서 할 수가 없어서 질문드립니다.ㅜㅜ



sungyong
sungyong   3 years, 5 months ago

맞습니다.

docker-compose exec web python manage.py collectstatic

을 실행하면 될지도 모릅니다. 

Updated: June 17, 2021, 8:49 p.m.

taegon
taegon   3 years, 5 months ago

안녕하세요.

장고를 웹서버로 써서 테스트로 돌릴 때는 앱 폴더 아래에 있는 static 파일들이 접근이 되지만, 배포모드로 바꾸고 나면, static 파일을 따로 모아서 서비스하게 되죠.

docker-compose.yml에 정의하였듯이 /usr/src/app/_static 폴더는 nginx를 통해서 접근하기 때문에, 그 폴더 안에 파일이 있으면, 장고와 상관없이 웹으로 확인할 수 있습니다.

하지만 업로드한 파일이 보이지 않는 이유는 _static 폴더가 아닌 앱 폴더 아래에 있기 때문입니다. 이때 "python manage.py collectstatic"를 실행하시면, 앱 폴더에 있는 파일들을 모아서 _static 폴더 아래로 복사해줍니다.

이러한 작업과정이 다소 번거롭게 느껴지실 수 있는데, 배포과정에서 동일한 서버가 아닌 제3의 서버나 AWS S3버킷, CDN 같은 서비스를 이용한다고 가정할 때, collectstatic으로 이러한 배포과정이 동일하게 사용할 수 있습니다.

고맙습니다.

Updated: June 16, 2021, 1:41 p.m.

Leave a Comment:
목록보기
Search
  • 자유게시판
  • Q&A