Python/Django

[Django] static 파일 불러오기

S0PH1A 2019. 7. 1. 23:35
반응형

[Django] static 파일 불러오기


static폴더 : css, image, js 파일을 포함하는 폴더이다.

먼저 settings.py에서 static 폴더 위치를 설정해 준다.
Django예제에서와 같이 앱들과 동등한 위치에 static폴더를 만들 경우

아래와 같이 staticfiles_dirs에 경로를 추가해 주면된다.

// settings.py
STATIC_DIR = os.path.join(BASE_DIR, "static")

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    STATIC_DIR,
]

s

만약, static폴더를 다른 곳에 만들고 싶다면 어떻게 해야할까?
예를 들어, myapp 이라는 앱 폴더 내에 존재할 경우,
똑같이 경로를 staticfiles_dirs에 추가해 주면된다.

// settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "/myapp/static"),
]

STATICFILES_DIRS리스트이기 때문에 여러 개 입력이 가능하다.

// settings.py
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    STATIC_DIR,
    os.path.join(BASE_DIR, "/myapp/static"),
]

 

그리고 나서, static파일을 추가할 html파일 상단에 static 파일을 불러오겠다는 선언을 추가해 준다.
{% load static %}는 static를 불러오겠다는 뜻이다.
<!DOCTYPE html>밑에 선언해 준다.

<!DOCTYPE html>
{% load static %}  <!-- Django 1.10 이상 -->
{% load staticfiles %}  <!-- Django 1.10 미만 -->

 

이제, html에서 static폴더에 접근할 수 있는 권한을 갖게 되었다.
그럼, 이미지/Javascript/Css 등을 불러오려면 어떻게 해야 할까?
예를 들어, static/css/mystyle.css파일을 사용할 경우 아래와 같이 경로를 추가하여 사용하면 된다.

형식은 다음과 같다. {% static 'static 하위 경로' %}

<!DOCTYPE html>
{% load static %}
<html lang="en">

<head>
 <link rel="stylesheet" href="{% static 'css/mystyle.css' %}">
</head>

 

 

 

 

 

반응형