[Django] Static files

Jin·2021년 9월 13일
0

django

목록 보기
9/14
post-thumbnail

Static File

  • 정적 파일
  • 응답할 때 별도 처리 없이 파일 내용을 그대로 보여주면 되는 파일
    • 사용자의 요청에 따라 내용이 바뀌는게 아니라 요청한것 그대로 보여주는 파일

1) Static File 구성

  1. django.contrib.staticfiles가 INSTALLED_APPS에 포함되있는지 확인
  2. settings.py에서 STATIC_URL을 정의
  3. 템플릿에서 static 템플릿 태그를 사용하여 지정된 상대경로에 대한 URL을 빌드
  4. 앱의 static폴더에 정적 파일을 저장
    ex) my_app/static/my_app/example.jpg

2) Django template tag

1. load

  • 사용자 정의 템플릿 태그 세트를 로드
    • 로드하는 라이브러리, 패키지에 등록된 모든 태그와 필터를 등록

2. static

  • STATIC_ROOT에 저장된 정적 파일에 연결

3. STATIC_ROOT

  • collectstatic의 배포를 위해 정적 파일을 수집하는 디렉토리의 절대 경로
  • django 프로젝트에서 사용하는 모든 정적 파일을 한 곳에 모아 넣는 경로
  • 개발 과정에서 settings.py의 DEBUG 값이 True로 설정되 있으면 해당값은 적용되지 않음.
    • 직접 작성하지 않으면 django 프로젝트에서는 settings.py에 작성되어 있지 않음
  • 실 서비스 환경(배포 환경)에서 django의 모든 정적 파일을 다른 웹 서버가 직접 제공하기 위함

collectstatic

  • STATIC_ROOT에 정적 파일을 수집
# STATIC_ROOT 작성
STATIC_ROOT = BASE_DIR / 'staticfiles'

# collectstatic 명령어
$ python manage.py collectstatic

# 현재 장고가 사용하는 모든 static파일들을 한곳에 모아줌

4. STATIC_URL

  • STATIC_ROOT에 잇는 정적 파일을 참조 할 때 사용할 URL
    • 개발 단계에서는 실제 정적 파일들이 저장되어 있는 app/static/경로(기본경로) 및 STATICFILES_DIRS에 정의된 추가 경로들을 탐색함
  • 실제 파일이나 디렉토리가 아니며, URL로만 존재
  • 비어 있지 않은 값으로 설정 한다면 반드시 /로 끝나야 함

5. STATICFILES_DIRS

  • app/static/ 디렉토리 경로를 사용하는것 외에 추가적인 정적파일 경로 목록을 정의하는 리스트
  • project폴더와 동일한 경로에 static/images 폴더 생성
  • 추가 파일 디렉토리에 대한 전체 경로를 포함하는 문자열 목록으로 작성되어야 함
# settings.py

STATICFILES_DIRS = [
    BASE_DIR / 'static',
]

# .html

<img src="{% 'images/image.png' %}">
profile
내가 다시 볼려고 작성하는 블로그. 아직 열심히 공부중입니다 잘못된 내용이 있으면 댓글로 지적 부탁드립니다.

0개의 댓글