정적 파일 : static - 이미지나 CSS, JS 파일 처럼 내용이 고정되어 있어, 응답을 할 때 별도의 처리 없이 파일 그대로를 보내주면 되는 파일들 (즉, 미리 저장해두고 필요할 때 불러오는 파일)
static 파일을 이용해 사진을 첨부해 보자!
해당 사진을 띄우기 위해서는 프로젝트 전체 관리자에게 해당 파일이 어디에 위치해있는지 명시를 해줘야 합니다.
그럼 앱 안에 만든 static 폴더를 Django에게 위치를 알려주기 위해 프로젝트 전체를 관장하는 settings.py로 가서 아래의 코드를 추가해줍니다.
#settings.py
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
# 어떤 식으로 static 파일을 관리하는지 공식 문서로 나와있다
STATIC_URL = '/static/'
static 파일을 활용하기 위해선 static 파일이 어디에 있는지와 그리고 static 파일을 어디에 모을건지 settings.py에 알려줘야 합니다!
os모듈을 활용해야 하기 때문에 settings.py에서 import os를 해주세요.
#settings.py
#맨 위에 os를 import 해주세요
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'blog', 'static') # BASE_DIR/blog/static
# os.path.join(BASE_DIR, '앱이름', 'static')
]
# static django에서는 편의를 위해 흩어져있는 static파일을 한곳에 모으는데,
# 그때 파일을 모아줄 위치를 나타냅니다.
STATIC_ROOT = os.path.join(BASE_DIR, 'static') # BASE_DIR/static
static 파일을 모으기 위해 터미널에 python manage.py collectstatic
이라는 명령어를 작성한다.
아래 이미지와 같이 결과가 뜬다면 정상적으로 작동한 것이니 안심하자.
{% load static %}
을 사용해야 합니다.# 사용하기 위해선 {% load static %} 명령어 사용
{% load static %}
# 위 코드를 통해 static 파일에 접근이 가능하다
<img src = "{% static '파일이름.확장자' %}" alt = "">
# "{% static '파일이름.확장자' %}"를 통해 static 파일에 안에 있는 것에 접근할 수 있다.