IT Study

Django Project에서 static file 설정하기

masoume 2016. 3. 25. 05:43

< settings.py >

1. PROJECT_ROOT_DIR 설정

원하는 경로를 설정하면 된다. 여기서는 Project 폴더가 있는 곳으로 설정했다.

PROJECT_ROOT_DIR = os.path.dirname(BASE_DIR) 


2. STATIC_URLSTAIC_ROOT 설정

STATIC_URL = '/static/' STATIC_ROOT = os.path.join(PROJECT_ROOT_DIR, 'dist', 'static') 

STATIC_URL은 static 파일들이 URL 상에서 위치하는 기본 경로이고 STAIC_ROOT는 실제 css 파일이나 js 파일들이 위치하는 곳이다.



3. STATICFILES_DIRS 설정

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'app 이름', 'static')] 

STATICFILES_DIRS 튜플이나 리스트로 입력을 해준다. app마다 만들어준 static폴더의 위치를 튜플이나 리스트로 설정한다. STATICFILES_DIRS를 설정해주면 Project를 진행하면서 app > static > css의 css파일을 수정해가며 작업할 수 있다.



MEDIA의 경우도 MEDIA_URL, MEDIA_ROOT를 설정해주면 된다. 그리고 urls.py 에서 몇 가지 작업을 더 해준다.

일단 아래 모듈들을 import 한다.

from django.conf import settings from django.conf.urls.static import static 

그리고 urlpatterns의 리스트가 끝나는 지점에 한 줄을 추가해준다.

urlpatterns = [     (생략) ] + static(settings.MEDIA_URL, document_ROOT=settings.MEDIA_ROOT)  


html에서 staticfile 적용하기

문서 상단에 {% load staticfiles %}를 추가해주고 <header>영역에 <link>태그를 추가해준다.

<link rel="stylesheet" href="{% static "css/application.css" %}" type="text/css">