Django์์ ๋ค๋ฃจ๋ ํ์ผ์ ์ข ๋ฅ๋ ํฌ๊ฒ Static File, Dynamic File ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. Static File์ ๋ฏธ๋ฆฌ ์๋ฒ์ ์ ์ฅ๋์ด ์์ผ๋ฉฐ ์๋ฒ์ ์ ์ฅ๋ ๊ทธ๋๋ก๋ฅผ ์๋น์คํด์ฃผ๋ ํ์ผ์ ๋๋ค. Dynamic File์ ์๋ฒ์ ๋ฐ์ดํฐ๋ค์ด ์ด๋์ ๋ ๊ฐ๊ณต๋ ๋ค์ ์๋น์ค๋๋ ํ์ผ์ ๋๋ค. Static File์ ๋ค์ static๊ณผ media ๋๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค. ์ฝ๊ฒ static์ ๊ฐ๋ฐํ ๋ ๋ฏธ๋ฆฌ ์ค๋นํด๋์ด ํ๋ก์ ํธ์ ๋ฏธ๋ฆฌ ์ ๋ก๋ ๋ ํ์ผ(css, image, javascript)์ด๊ณ , media๋ ์ฌ์ฉ์๊ฐ ์ ๋ก๋ํ ํ์ผ์ ๋๋ค.
h1{
color:orange;
}
๋๋๊ทธ์ค ๋๋กญ์ผ๋ก ๋ฃ์ผ๋ฉด ๋ฉ๋๋ค. ํ์ฅ์๋ ์ด๋ฆ์ ์ ํ์ธํด์ฃผ์ธ์.
settings.py ๋งจ ๋ง์ง๋ง ๋ถ๋ถ์ ์ถ๊ฐํด์ฃผ์ธ์.
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'basic', 'static')
] # static ํ์ผ๋ค์ด ํ์ฌ ์ด๋์ ์๋์ง๋ฅผ ์ฐ๋ ๊ณณ
# BASE_DIR(์ต์์ ํ๋ก์ ํธ ํด๋(basic))>basic>static ํด๋์ static ํ์ผ๋ค์ด ์๋ค.
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# static ํ์ผ๋ค์ด ์ด๋๋ก ๋ชจ์ผ ๊ฒ์ธ์ง๋ฅผ ์ฐ๋ ๊ณณ
# BASE_DIR(์ต์์ ํ๋ก์ ํธ ํด๋(basic)) ํ์์ 'static'์ด๋ผ๋ ํด๋๋ฅผ ๋ง๋ค์ด ๋ชจ์๋ค.
$ ls # ํ์ฌ ์์น์ manage.py๊ฐ ์๋์ง ํ์ธ
$ python manage.py collectstatic
{% extends 'base.html' %} <!-- ์ ์ผ ์์ ์ ์ด์ค์ผํฉ๋๋ค. -->
{% load static %} <!-- html ํ์ผ์์ saticํ์ผ์ ์ฌ์ฉํ ๊ฑฐ๋ผ๊ณ ์๋ ค์ฃผ๊ธฐ -->
{% block content %}
<h1>2021 Dongguk Likelion 3rd session</h1>
<a href="{% url 'first' %}">first</a>
<a href="{% url 'second' %}">second</a>
<img src="{% static 'images/image01.jpg' %}"> <!-- static ํ์ผ๋ค์ด ์๋ ๊ฒฝ๋ก(BASE_DIR>basic>static ํด๋)์์ images ํด๋์ image01.jpg -->
{% endblock %}
static์ ์ฌ์ฉํ ๋๋ {% load static %}
๋ฅผ ์์ ์จ์ฃผ๋ ๊ฒ ์์ง ๋ง์๋ค.
<!DOCTYPE html>
{% load static %} <!-- html ํ์ผ์์ saticํ์ผ์ ์ฌ์ฉํ ๊ฑฐ๋ผ๊ณ ์๋ ค์ฃผ๊ธฐ -->
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>
<link rel="stylesheet" href="{% static 'css/project.css' %}"> <!-- static ํ์ผ๋ค์ด ์๋ ๊ฒฝ๋ก(BASE_DIR>basic>static ํด๋)์์ css ํด๋์ project.css๋ฅผ Link style๋ก ์ฐ๊ฒฐ -->
</head>
<body>
{% include 'shared/_navbar.html' %}
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>