Static 파일이란?
static 파일이란 js, css, image, font 등과 같이 개발자가 사전에 미리 서버에 저장 해둔 파일들을 말합니다. 정적인 파일들이라고 할 수 있습니다.
static 사용을 위한 settings.py설정!
1. static_url 설정하기
STATIC_URL = '/static/'
위 구문을 추가해 설정할 수 있으며,
이를 통해 각 static 파일에 대한 URL의 고정값을 설정할 수 있습니다.
ex) /static/img/ 디렉토리안의 logo.jpg 파일을 사용하려한다면
# example.html
{% static '/img/logo.jpg' %}
이런식으로 static파일에 대해 참조할 수 있습니다.
2. STATICFILES_DIRS
STATICFILES_DIRS = [
BASE_DIR / "static",
]
프로젝트 전반적으로 사용되는 static 경로가 어딘지 설정합니다.
프로젝트 디렉토리 바로 하위 단계에 만들어지며 위 코드에서는 static라는 이름의 디렉토리가 생성됩니다.
3. STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
각 static
파일들은 각자 다른 경로에 나눠져 있습니다. 왜냐하면 프로젝트 전반적으로 사용하는 파일들은 STATICFILES_DIRS
에 담겨 있고, 각자의 app 안에는 app 에서 사용되는 파일들이 따로 모여있습니다.
배포를 하기 위해서는 이들을 하나의 디렉토리에 모아야 하는데 아래 명령어로 한 번에 모을 수 있습니다.
python manage.py collectstatic
하지만 어디로 모을지는 따로 지정을 해줘야하고 그 경로가 바로 STATIC_ROOT
입니다.
static
폴더를 따로 만들지 않더라도 지정한 경로에 만들어주고 그 안에 복사하여 담아줍니다.
만약 static폴더에 정적인 파일들을 사용하고 collectstatic을 사용했다면
아래와 같은 프로젝트 구조가 될것이다!
----------------------------------------------------------------
프로젝트 폴더/
- config/
- apps/
- {app_name_1}/
- {app_name_2}/
- {app_name_3}/
- templates/
- static/
- css/
- font/
- img/
- js/
- staticfiles/
----------------------------------------------------------------
templates 에서 사용
{% load static %}
{% static 'STATIC_URL 이후의 경로' %}
이런식으로 스태틱 경로의 어떤 파일을 사용할 것인지 명시 해줘야한다.
명시 한후 아래와 같이 {% static %} 혹은 경로를 직접입력하여 사용하면 된다!
<link rel="stylesheet" type="text/css" href="{% static 'base.css' %}" >
<img src="/static/images/logo.png">
'django' 카테고리의 다른 글
requirements.txt를 통한 의존성 관리 (0) | 2021.02.22 |
---|---|
[Django] 클래스형 뷰 (CBV, Class-Based View) (0) | 2021.02.14 |
[Django] 템플릿(template) 언어 (0) | 2021.02.06 |
[Django] 쿼리셋(QuerySet) (0) | 2021.02.05 |
[Djnago] HttpRequest와 HttpResponse API (1) | 2021.02.02 |