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">
반응형

+ Recent posts