Django 개발 환경 Static, Media serving
서론
django를 막 시작할 때 media나 static폴더를 만들어 파일들을 넣거나 업로드했는데 실행해보면 파일이 불러와지지 않은 적이 있을 것이다. 그에 대한 필요한 설정들을 나열한 페이지이다.
settings.py
먼저 settings.py 파일을 바꿔줘야 한다.
OOO_URL은 말 그대로 사용할 URL을 표시하는 것이고
STATIC은 STATICFILES_DIRS로 저장 경로를 표시하고 MEDIA는 MEDIA_ROOT로 경로를 표시한다.
STATIC의 ROOT는 CollectStatic을 위해 사용되는데 여기를 참조하면 된다.
# settings.py
STATIC_URL = '/static/'
STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [
STATIC_DIR
]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls.py
다음은 프로젝트 urls.py 에서 변경해 줘야 할 사항이다.
개발 환경에서만 가능한 동작이므로 settings.DEBUG 조건을 넣어 배포 환경에 대비한 코드를 넣었다.
static는 자동으로 추가해준다 document를 잘못 해석하였다... static과 media 모두 추가해야 한다.
Django에서도 오로지 Debug 환경에서만 권장한다. 여기를 참조해보자
Static
# project/urls.py
from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
마치며
이렇게 2가지만 추가하게 되면 Media와 Static파일이 잘 뜨는 걸 알 수 있을 것이다.
배포 환경에는 배포 환경에 맞는 설정을 해야 하므로 별도의 설정이 필요하다.
Reference
https://docs.djangoproject.com/en/3.2/ref/settings/#media-root
Settings | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com
Managing static files (e.g. images, JavaScript, CSS) | Django documentation | Django
Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate
docs.djangoproject.com