НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

Django Підручник

Django Головна Django Інтро Django Почати навчання Створення віртуального середовища Встановити Django Django Створити проєкт Django Створити додаток Django Представлення Django URL Django Шаблони Django Моделі Django Вставити дані Django Оновити дані Django Видалити дані Django Оновити модель

Відображення даних

Підготовка шаблону і представлення Додати посилання на деталі Додати головний шаблон Додати головну Index сторінку Django 404 Шаблон Додати Test перегляд

Admin

Django Admin Створити користувача Включити учасника Відображення списку установок Оновити учасників Додати учасників Видалити учасників

Django Синтаксис

Django Змінні Django Теги Django If Else Django Цикл For Django Коментар Django Include

QuerySets

QuerySet Інтро QuerySet Get QuerySet Фільтр QuerySet Order By

Статичні файли

Додати статичні файли Встановити WhiteNoise Зібрати статичні файли Додати глобальні статичні файли Додати стилі до проєкту

PostgreSQL

PostgreSQL Інтро Створити обліковий запис AWS Створити бази даних у RDS Підключитися до бази даних Додати учасників

Розгортання Django

Elastic Beanstalk (EB) Створити requirements.txt Створити django.config Створити .zip файл Розгорнути із EB Оновити проєкт

Більше Django

Додати Slug Field Додати Bootstrap 5

Django Довідники

Довідник тегів шаблону Довідник фільтра Довідник Пошуку полів

Django Вправи

Django Компілятор Django Вправи Django Вікторина Django Сервер Django Сертифікат

Django. Уроки для початківців

En Es De

Django - Глобальні статичні файли


Додати глобальний файл CSS

Ми дізналися, як додати статичний файл у папку static програми та як використовувати його в програмі.

А що, якщо інші програми у вашому проєкті захочуть використовувати файл?

Тоді нам потрібно створити папку в кореневому каталозі та помістити туди файл(и).

Недостатньо створити папку static у кореневому каталозі, Django виправить решту. Ми повинні сказати Django, де шукати ці статичні файли.

Почніть зі створення папки на кореневому рівні проєкту, цю папку можна назвати як завгодно, у цьому посібнику вона називатиметься mystaticfiles:

my_tennis_club
    db.sqlite3
    manage.py
    my_tennis_club/
    members/
    mystaticfiles/

Додайте файл CSS у папку mystaticfiles, назву ви вибираєте, ми назвемо його myglobal.css в цьому прикладі:

my_tennis_club
    db.sqlite3
    manage.py
    my_tennis_club/
    members/
    mystaticfiles/
        myglobal.css

Відкрийте файл CSS і вставте наступне:

my_tennis_club/mystaticfiles/myglobal.css:

body {
  color: violet;
}

Змінити налаштування

Ви повинні будете сказати Django також шукати статичні файли в папці mystaticfiles у кореневому каталозі, це робиться в файлі settings.py:

Додайте список STATICFILES_DIRS:

my_tennis_club/my_tennis_club/settings.py:

.
.

STATIC_ROOT = BASE_DIR / 'productionfiles'

STATIC_URL = 'static/'

#Add this in your settings.py file:
STATICFILES_DIRS = [
    BASE_DIR / 'mystaticfiles'
]
.
.

У списку STATICFILES_DIRS ви можете перелічити всі каталоги, де Django має шукати статичні файли.

Ключове слово BASE_DIR представляє кореневий каталог проєкту та разом із /"mystaticfiles" означає папку mystaticfiles у кореневому каталозі.

Порядок пошуку

Якщо у вас є файли з однаковою назвою, Django використовуватиме перше входження файлу.

Пошук починається в каталогах, перелічених у STATICFILES_DIRS, використовуючи вказаний вами порядок. Тоді, якщо файл не знайдено, пошук продовжується в папці static кожної програми.


Змініть шаблон

Тепер у вас є глобальний файл CSS для всього проєкту, доступ до якого можна отримати з усіх ваших програм.

Щоб використати його в шаблоні, використовуйте той самий синтаксис, що й для файлу myfirst.css:

Почніть шаблон із наступного:

{% load static %}

І зверніться до файлу таким чином:

<link rel="stylesheet" href="{% static 'myglobal.css' %}">

Приклад

my_tennis_club/members/templates/template.html:

{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myglobal.css' %}">
<body>

{% for x in fruits %}
  <h1>{{ x }}</h1>
{% endfor %}

</body>
</html>
Виконати приклад »

Не спрацювало?

Це правильно. Потрібно ще раз зібрати статичні файли.


Зберіть статичні файли

Виконайте команду collectstatic, щоб зібрати новий статичний файл:

py manage.py collectstatic

Що дасть такий результат:

You have requested to collect static files at the destination
location as specified in your settings:

    C:\Users\Your Name\myworld\my_tennis_club\productionfiles

This will overwrite existing files!
Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel:

Введіть так:

Type 'yes' to continue, or 'no' to cancel: yes

Що дасть такий результат:

1 static file copied to 'C:\Users\Your Name\myworld\my_tennis_club\productionfiles', 131 unmodified.

Приклад має працювати

Запустіть сервер, і приклад запрацює:

py manage.py runserver

Перегляньте результат у власному браузері: 127.0.0.1:8000/testing/.

Приклад

my_tennis_club/members/templates/template.html:

{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myglobal.css' %}">
<body>

{% for x in fruits %}
  <h1>{{ x }}</h1>
{% endfor %}

</body>
</html>
Виконати приклад »


Коментарі