장고 - Media 파일 서빙하기

1. 미디어 파일 관련 설정

- 경로 : 프로젝트 > settings.py
1
2
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2. 디버그 모드일 경우, urlpatterns 에 MEDIA_URL, MEDIA_ROOT 패턴 추가

- 경로 : 프로젝트 > urls.py
1
2
3
4
from django.conf import settings
from django.conf.urls.static import static

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

3. 라이브 상태일 때, serve 뷰 사용하여 연결

- 경로 : 프로젝트 > urls.py
1
2
3
4
5
6
7
from django.views.static import serve
from django.urls import re_path

urlpatterns = [
...
re_path(r'^media/(?P<path>.*)$', serve, {'document_root':settings.MEDIA_ROOT}),
]

4. 설정파일에서 DEBUG를 False로 변경

- 경로 : 프로젝트 > settings.py
1
2
3
DEBUG = False

ALLOWED_HOSTS = ['*']

5. 이미지 제대로 출력되는지 확인


이 방법은 S3을 사용하지 않고 이미지 파일을 서빙하는 방법이다. 더 나은 방식은 Nginx 등 웹 서버에서 셋팅해주는 방식이다.