Skip to content

Latest commit

ย 

History

History
76 lines (66 loc) ยท 3.38 KB

File metadata and controls

76 lines (66 loc) ยท 3.38 KB

Static

Static์ด๋ž€?

Django์—์„œ ๋‹ค๋ฃจ๋Š” ํŒŒ์ผ์˜ ์ข…๋ฅ˜๋Š” ํฌ๊ฒŒ Static File, Dynamic File ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Static File์€ ๋ฏธ๋ฆฌ ์„œ๋ฒ„์— ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฉฐ ์„œ๋ฒ„์— ์ €์žฅ๋œ ๊ทธ๋Œ€๋กœ๋ฅผ ์„œ๋น„์Šคํ•ด์ฃผ๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. Dynamic File์€ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ์–ด๋Š์ •๋„ ๊ฐ€๊ณต๋œ ๋‹ค์Œ ์„œ๋น„์Šค๋˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. Static File์€ ๋‹ค์‹œ static๊ณผ media ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ static์€ ๊ฐœ๋ฐœํ•  ๋•Œ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•ด๋‘์–ด ํ”„๋กœ์ ํŠธ์— ๋ฏธ๋ฆฌ ์—…๋กœ๋“œ ๋œ ํŒŒ์ผ(css, image, javascript)์ด๊ณ , media๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์—…๋กœ๋“œํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

1. basic>static ํด๋” ์ƒ์„ฑ

2. static ํด๋” ์•ˆ์— css์™€ images ํด๋” ์ƒ์„ฑ

3. css>project.css ์ƒ์„ฑ ํ›„ ์ฝ”๋“œ ์ž‘์„ฑ

h1{
    color:orange;
}

4. css>images์— ์‚ฌ์ง„ ๋„ฃ๊ธฐ

๋“œ๋ž˜๊ทธ์•ค ๋“œ๋กญ์œผ๋กœ ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํ™•์žฅ์ž๋ž‘ ์ด๋ฆ„์„ ์ž˜ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

5. basic>settings.py ์„ค์ •ํ•˜๊ธฐ

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'์ด๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ค์–ด ๋ชจ์€๋‹ค.

6. static ํŒŒ์ผ๋“ค ๋ชจ์œผ๊ธฐ

$ ls # ํ˜„์žฌ ์œ„์น˜์— manage.py๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
$ python manage.py collectstatic 

7. mainpage.html์—์„œ static ์‚ฌ์šฉํ•˜๊ธฐ(image)

{% 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 %}

8. base.html์—์„œ static ์‚ฌ์šฉํ•˜๊ธฐ(css)

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>