TEMPLATES['DIRS'] STATICFILES_DIRS

heeyoung_1023·2026년 4월 7일

헷갈리는 부분 정리

목록 보기
38/40

🔑 흐름도 읽는 법

① 왼쪽 폴더 구조가 실제 내 컴퓨터에 존재하는 파일들이에요.

② settings.py 에 두 줄을 등록하는 순간:

  • 🟢 templates/ 폴더 → Django가 HTML 찾을 때 여기를 봄
  • 🟡 static/ 폴더 → Django가 CSS/JS 찾을 때 여기를 봄

③ 브라우저가 요청하면:

  • urls.pyviews.py 순서로 실행
  • views.py에서 render(request, 'base.html') 호출
  • Django가 설정에 등록된 경로를 뒤져서 파일을 찾음

💡 가장 쉬운 비유

settings.py = 지도 앱에 즐겨찾기 등록하는 것

  • TEMPLATES['DIRS'] = "HTML은 이 동네에 있어"
  • STATICFILES_DIRS = "CSS/JS는 저 동네에 있어"

등록을 안 하면 Django가 길을 몰라서 파일을 못 찾음 → 오류!


Django 설정 2번, 3번 개념 설명

TEMPLATES['DIRS'] 는 Django에게 HTML 파일을 어디서 찾아야 하는지 알려주는 설정이고, STATICFILES_DIRS 는 CSS, JS, 이미지 같은 정적 파일을 어디서 찾아야 하는지 알려주는 설정입니다. 두 설정 모두 "파일 탐색 경로"를 지정하는 역할을 합니다.

아래 흐름도로 전체 구조를 확인해 보세요.---

Django 설정 2번, 3번 개념 설명

TEMPLATES['DIRS'] 는 Django에게 HTML 파일을 어디서 찾아야 하는지 알려주는 설정이고, STATICFILES_DIRS 는 CSS, JS, 이미지 같은 정적 파일을 어디서 찾아야 하는지 알려주는 설정입니다. 두 설정 모두 "파일 탐색 경로"를 지정하는 역할을 합니다.

아래 흐름도로 전체 구조를 확인해 보세요.---

2️⃣ TEMPLATES['DIRS'] — HTML 찾는 경로

'DIRS': [BASE_DIR / 'templates']

역할: Django가 render(request, 'base.html') 같은 코드를 만났을 때, HTML 파일을 어느 폴더에서 찾아야 하는지 알려줍니다.

흐름:
1. views.py에서 render(request, 'index.html') 호출
2. Django가 TEMPLATES['DIRS']에 등록된 경로를 순서대로 탐색
3. 프로젝트루트/templates/index.html 발견 → 렌더링
4. 완성된 HTML을 브라우저에 응답

myproject/
├── templates/         ← 이 폴더를 Django가 탐색함
│   ├── base.html
│   └── index.html

3️⃣ STATICFILES_DIRS — CSS/JS/이미지 찾는 경로

STATICFILES_DIRS = [BASE_DIR / 'static']

역할: CSS, JavaScript, 이미지 같은 정적 파일을 어느 폴더에서 찾아야 하는지 알려줍니다. HTML과 달리 렌더링 없이 파일 자체를 그대로 브라우저에 보냅니다.

흐름:
1. 브라우저가 <link rel="stylesheet" href="/static/style.css"> 요청
2. Django가 STATICFILES_DIRS에 등록된 경로를 탐색
3. 프로젝트루트/static/style.css 발견 → 파일 그대로 전송

myproject/
├── static/            ← 이 폴더를 Django가 탐색함
│   ├── style.css
│   ├── app.js
│   └── logo.png

🔑 핵심 차이 한눈에 비교

구분TEMPLATES['DIRS']STATICFILES_DIRS
대상 파일.html.css, .js, 이미지
처리 방식렌더링 (데이터 삽입)파일 그대로 전송
호출 위치views.py에서 render()HTML의 {% static %} 태그
폴더명 관례templates/static/

두 설정 모두 "Django야, 파일을 여기서 찾아!" 라고 경로를 등록하는 것이 핵심입니다. 추가로 궁금한 부분 있으면 알려주세요!

2️⃣ TEMPLATES['DIRS'] — HTML 찾는 경로

'DIRS': [BASE_DIR / 'templates']

역할: Django가 render(request, 'base.html') 같은 코드를 만났을 때, HTML 파일을 어느 폴더에서 찾아야 하는지 알려줍니다.

흐름:
1. views.py에서 render(request, 'index.html') 호출
2. Django가 TEMPLATES['DIRS']에 등록된 경로를 순서대로 탐색
3. 프로젝트루트/templates/index.html 발견 → 렌더링
4. 완성된 HTML을 브라우저에 응답

myproject/
├── templates/         ← 이 폴더를 Django가 탐색함
│   ├── base.html
│   └── index.html

3️⃣ STATICFILES_DIRS — CSS/JS/이미지 찾는 경로

STATICFILES_DIRS = [BASE_DIR / 'static']

역할: CSS, JavaScript, 이미지 같은 정적 파일을 어느 폴더에서 찾아야 하는지 알려줍니다. HTML과 달리 렌더링 없이 파일 자체를 그대로 브라우저에 보냅니다.

흐름:
1. 브라우저가 <link rel="stylesheet" href="/static/style.css"> 요청
2. Django가 STATICFILES_DIRS에 등록된 경로를 탐색
3. 프로젝트루트/static/style.css 발견 → 파일 그대로 전송

myproject/
├── static/            ← 이 폴더를 Django가 탐색함
│   ├── style.css
│   ├── app.js
│   └── logo.png

🔑 핵심 차이 한눈에 비교

구분TEMPLATES['DIRS']STATICFILES_DIRS
대상 파일.html.css, .js, 이미지
처리 방식렌더링 (데이터 삽입)파일 그대로 전송
호출 위치views.py에서 render()HTML의 {% static %} 태그
폴더명 관례templates/static/

두 설정 모두 "Django야, 파일을 여기서 찾아!" 라고 경로를 등록하는 것이 핵심입니다. 추가로 궁금한 부분 있으면 알려주세요!

profile
개발언어를 배우는 과정 기록

0개의 댓글