[django toolBox] 장고 DEBUG = FALSE 에서 정적 파일과 미디어 읽기

settings.py에서 작업하실때는 디버그의 기본은 debug=True 입니다. 그러나

실제로 서비스를 할때는 보안상 debug=False 로 해서 끕니다. 그러나 이때부터 Django는 더 이상 정적 파일을 처리하지 않습니다.

여러분 호스팅 환경의 웹 서버(Apache 등)가 이를 처리해야 합니다.

그러나 간단하게 다음과 같은 방법도 사용이 가능합니다.

다음의 안내를 따르시면 됩니다. 

1.먼저 debug = False와 Allowed_HOSTS 처리를 합니다. 예시에서는  ALLOWED_HOSTS가 * 이지만, 실제 사용할때는

반드시 여러분의 도메인을 사용합니다. (로칼에서 테스트할때는 locahost또는 IP)

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['*']

 

2 settings.py 에서 STATIC_ROOT 와 MEDIA_ROOT 경로를 정의합니다.

 

STATIC_URL = '/static/'

MEDIA_URL = '/media/'

  

if DEBUG:

  STATICFILES_DIRS = [os.path.join(BASE_DIR'static')]

else:

  STATIC_ROOT = os.path.join(BASE_DIR'static')

  

MEDIA_ROOT = os.path.join(BASE_DIR'media')

 

3. 그리고 루트 수준의 urls.py에서(settings.py가 있는 폴더) 정적 URL에서  STATIC_ROOT 와 MEDIA_ROOT 에 연결되도록 다음과 같이 정의합니다.

 
from django.conf.urls import url

from django.conf import settings

from django.views.static import serve

  

urlpatterns = [

  url(r'^media/(?P<path>.*)$'serve,{'document_root'settings.MEDIA_ROOT}),

  url(r'^static/(?P<path>.*)$'serve,{'document_root'settings.STATIC_ROOT}),

]

 

 

또한 여러분은 장고를 실제 서비스 하기 전에 다음의 배포 전 체크리스트를 확인해 보실 것을 추천드립니다.

배포 전 체크리스트(장고 공식 문서)

 

이글만 보기