Django - Зібрати статичні файли
Обробка статичних файлів
Статичні файли у вашому проєкті, такі як таблиці стилів, JavaScript і зображення, не обробляються Django автоматично, коли DEBUG = False
.
Коли DEBUG = True
, це працювало добре, все, що нам потрібно було зробити, це помістити їх у папку static
програми.
Коли DEBUG = False
, статичні файли потрібно зібрати та помістити у вказану папку, перш ніж ми зможемо їх використовувати.
Зібрати статичні файли
Щоб зібрати всі необхідні статичні файли для вашого проєкту, почніть із визначення властивості STATIC_ROOT
у файлі settings.py
.
Це вказує папку, куди ви хочете зібрати ваші статичні файли.
Ви можете називати папку як завгодно, ми її називатимемо productionfiles
:
my_tennis_club/my_tennis_club/settings.py
:
.
.
STATIC_ROOT = BASE_DIR / 'productionfiles'
STATIC_URL = 'static/'
.
.
Ви можете вручну створити цю папку, зібрати та помістити всі статичні файли вашого проєкту в цю папку, але Django має команду, яка зробить це за вас:
py manage.py collectstatic
Що дасть такий результат:
131 static files copied to 'C:\Users\your_name\myworld\my_tennis_club\productionfiles'.
131 файл? Чому так багато? Ну, це через інтерфейс користувача адміністратора, який є вбудованим у Django. Ми хочемо зберегти цю функцію в робочій версії, і вона постачається з цілим набором файлів, включаючи таблиці стилів, шрифти, зображення та JavaScript.
my_tennis_club
members/
my_tennis_club/
productionfiles/
admin/
myfirst.css
Приклад має працювати
Тепер ви зібрали статичні файли вашого проєкту, і якщо ви встановили WhiteNoise, приклад із розділу Додавання статичних файлів нарешті запрацює.
Запустіть сервер і подивіться результат:
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 'myfirst.css' %}">
<body>
{% for x in fruits %}
<h1>{{ x }}</h1>
{% endfor %}
</body>
</html>
Виконати приклад »