데이터 분석 기술 블로그

Django에 대하여(17)_Static files 본문

백엔드

Django에 대하여(17)_Static files

데이터분석가 이채은 2024. 4. 8. 09:00

Static Files (정적 파일)

서버 측에서 변경되지 않고 고정적으로 제공되는 파일로 이미지, JS, CSS 파일 등이 있습니다.

 

1.1 웹 서버와 정적 파일

웹 서버의 기본 동작은 특정 위치 (URL)에 있는 자원을 요청(HTTP request) 받아서 응답 (HTTP response)을 처리하고 제공(serving)하는 것입니다. 즉, 자원에 접근 가능한 주소가 있다는 의미입니다. 웹 서버는 요청받은 URL로 서버에 존재하는 정적 자원을 제공합니다. 정적 파일을 제공하기 위한 경로(URL)가 있어야 합니다.

 


1.2 기본 경로에서 제공하기

Static files 기본경로는 app폴더/static/ 입니다. 

 

  1. articles/static/articles/ 경로에 이미지 파일을 배치하면 아래와 같이 보입니다.
  2. static tag를 사용해 이미지 파일에 대한 url을 제공합니다.
    <!-- articles/index.html -->
    
    {% load static %}
    
    <img src="{% static 'articles/sample-1.png' %}" alt="img">​
  3. STATIC_URL
    STATIC_URL이란, 기본 경로 및 추가 경로에 위치한 정적 파일을 참조하기 위한 URL로 실제 파일이나 디렉토리가 아니고 URL로만 존재합니다.
    # settings.py
    
    STATIC_URL = 'static/'​
    STATIC_URL 확인
  4. Static files 추가 경로
    STATICFILES_DIRS에 문자열 값으로 추가 경로 설정을 할 수 있습니다. STATICFILES_DIRS는 정적 파일의 기본 경로 외에 추가적인 경로 목록을 정의하는 리스트입니다.
    # 임의의 추가 경로 설정
    # settings.py
    
    STATICFILES_DIRS = [
        BASE_DIR / 'static',
    ]​

추가 경로에 이미지 파일 배치

<!-- articles/index.html -->

<img src={% static 'sample-2.png' %}" alt="img">

이미지 출력 및 경로 확인