Django
django | Static 파일
leta
2021. 7. 7. 13:49
static 파일
: 이미지, CSS, JS 파일처럼 내용이 고정되어 있어서 응답을 할 때 별도의 처리 없이 파일 그대로 보내주면 되는 파일들
=> 미리 저장해두고 필요할 때 불러오는 파일
- 앱 폴더 안에 static 폴더 생성
- 이미지 다운 후 static 폴더에 해당 이미지 저장
settings.py
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
사진을 띄우기 위해 프로젝트 전체 관리자에게 해당파일이 어디에 위치해있는지 명시해야 함.
=> settings.py 수정 (settings.py가 프로젝트 전체 관장)
static 파일을 활용하려면
static 파일이 어디에 있는지, static 파일을 어디에 모을건지
settings.py에 알려줘야 함.
os 모듈 활용하므로 import os 필요.
$ python manage.py collectstatic
#static 파일 모으기
새로 생긴 static 폴더는 settings.py의 STATICFILES_DIRS 경로 안에 있는 모든 static 파일들을 한 곳에 모은다.
이 폴더의 경로 : STATIC_ROOT에 설정해준 곳.
{% load static %}
#template에 static 파일들을 불러오겠다. (장고 내장 명령어)
{% load static %}
# 위 코드를 통해 static 파일에 접근이 가능하다
<img src = "{% static '파일이름.확장자' %}" alt = "">
# "{% static '파일이름.확장자' %}"를 통해 static 파일에 안에 있는 것에 접근할 수 있다.
base.html에 static 파일 적용하기
=> <div class = "container"> 위에 img 태그 <img src =~> 추가
#이미지에 링크 거는 법
<a> 태그로 이미지를 감싸준다.
base.html
<a href="{% url 'home' %}"> <!-- a href="https://~"-->
<img src="{% static '이미지명.확장자' %}" alt="" width="50" height="50">
</a>