-
Debug = False 시 static 파일을 읽지 못하는 경우공부/Django 2023. 3. 1. 23:30
장고는 배포를 하면서 debug=False를 설정해야 한다. 공식문서에서도 배포 할 때는 debug=False로 변경하라고 한다.
그래서 변경을 하고 관리자 페이지나, swagger를 들어가보면 하얀 화면만 보이고 아무것도 볼 수 가 없다.
오늘은 보이지 않는 부분을 해결하기 위해서 블로그를 작성하려고 한다.
문제
Django의 runserver 기능은 개발 과정에서 사용을 해야하고, 배포하는 과정에서는 DEBUG=False로 설정 후 runserver 보다는 wsgi를 사용해야 한다. static file (static 경로에 있는 파일들 및 업로드, media 등) 은 웹서버 (Nginx or Apache)가 제공하는 것이 좋다.
따라서 일반적으로 DEBUG=False인 경우는 static file을 django project에서 직접 제공할 수 없다.
해결 방법
debug=False인 경우
from django.views.static import serve from django.conf import settings from django.conf.urls import url urlpatterns += url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}), urlpatterns += url(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}),만일, debug=True라면
from django.conf.urls.static import static from django.conf import settings urlpattern += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)를 사용하자
- 어떤 문제를 해결하기위해 검색하고 블로그에 작성한 글입니다. 부족한점이 많지만 틀린점이나 부족한점이 있다면 말씀해주시면 감사하겠습니다.
Ref.
Django DEBUG = False 와 static 설정
[Django] Django에서 static 과 media 이용하기. DEBUG=False일 때 static
'공부 > Django' 카테고리의 다른 글
Django - CloudWatch : 장고 로깅을 CloudWatch에 입력하기 (0) 2023.04.05 Django - S3 - nginx - 이미지업로드, 정적파일 (0) 2023.03.07 Nginx static 에서 root와 alias 의 차이 (0) 2023.03.04 Django - Nginx - Gunocorn - postgresql with Docker (0) 2023.03.04 Django - FBV vs CBV (0) 2022.07.21