Django

CSS 파일 가져오기

Strickland 2024. 5. 9. 11:54

현재 폴더 구조

 

index.html

{% extends "base.html"  %}
{% load static %}
{% block css_files %}
    <link rel="stylesheet" href="{% static "challenges/challenges.css"%}">
{% endblock %}
{% block page_title %}
All challenges
{% endblock %}

{% block content%}
{% include "challenges/include/header.html" with active_page="index"%}
    <ul>
        {% for month in months %}
            <li><a href="{%  url 'month-challenge' month %}">{{ month|title}}</a></li>
        {% endfor %}

    </ul>
{% endblock %}

1. {% load static %} 키워드 추가 

<link rel="stylesheet" href="{% static "challenges/challenges.css"%}">

href 속성으로 static 파일을 임포트 할 수 있다 .

 

settings.py 를 잠깐 살펴보자

STATIC_URL = 'static/'

STATICFILES_DIRS = [
    BASE_DIR / "static",
]

STATIC_URL 과 STATICFILES_DIRS 가 있다.

 

STATIC_URL: 이 설정은 웹 애플리케이션에서 정적 파일에 접근할 수 있는 URL을 정의한다 일반적으로는 /static/과 같이 설정되며, 이 URL을 통해 웹 페이지에서 정적 파일에 접근할 수 있습니다.

 

STATICFILES_DIRS: 이 설정은 장고가 정적 파일을 찾을 디렉토리를 정의한다.

STATICFILES_DIRS는 리스트로 정의되며, 각 요소는 정적 파일이 위치한 경로를 나타낸다. 이 설정을 통해 장고는 애플리케이션 디렉토리 외부에 있는 정적 파일을 찾을 수 있다. 일반적으로는 프로젝트의 루트 디렉토리에 있는 static 디렉토리를 지정한다.

 

base.html 을 살펴보자

base.html

{% load static %}
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>{% block page_title%}My Challenges{% endblock %}</title>
    <link rel="stylesheet" href="{% static "styles.css" %}">
    {% block css_files %}
    {% endblock  %}
</head>
<body>

    <h1>All Challenges</h1>
    {% block content %}{% endblock %}


</body>
</html>

base.html  에선 styles.css 파일을 로드하여 global 한 css 설정을 하고 있다. 이처럼 웹 애플리 케이션 내부가 아닌 root 디렉토리 아래에 있는 templates/base.html 이 css 파일을 로드할때 장고는 root 디렉토리 아래에 있는 static 폴더에서 styles.css 를 찾게 된다.

# 이 설정을 해줬기 때문에!
STATICFILES_DIRS = [
    BASE_DIR / "static",
]

 

 

장고 기본 설정은 아래와 같다.

1. 웹 어플리 케이션 내부에서의 css 파일을 웹 내부의 static 폴더에서 탐색한다.

 

만약 원한다면 내가 직접

STATICFILES_DIRS 에 경로를 추가해서  root/templates/base.html 이 찾는 css 파일의 위치를 알려줘야한다

'Django' 카테고리의 다른 글

dot notation  (0) 2024.05.15
다이나믹 라우팅  (0) 2024.05.10
커스텀 404 페이지  (0) 2024.05.06
파이참 장고 HTML 자동 완성 설정하기  (0) 2024.05.05
템플릿 서빙 방법 및 문법  (0) 2024.05.05