Django

Django 개발 환경 Static, Media serving

친구들안녕 2021. 6. 1. 11:47

서론

django를 막 시작할 때 media나 static폴더를 만들어 파일들을 넣거나 업로드했는데 실행해보면 파일이 불러와지지 않은 적이 있을 것이다. 그에 대한 필요한 설정들을 나열한 페이지이다.

 

 

settings.py

먼저 settings.py 파일을 바꿔줘야 한다.

OOO_URL은 말 그대로 사용할 URL을 표시하는 것이고

STATICSTATICFILES_DIRS로 저장 경로를 표시하고 MEDIAMEDIA_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

https://docs.djangoproject.com/en/3.2/howto/static-files/#serving-files-uploaded-by-a-user-during-development

 

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