Statik fayllarni yig‘ish
Statik fayllarni boshqarish
DEBUG = False bo‘lganda loyihangizdagi stil fayllari, JavaScript fayllari va rasmlar kabi statik fayllar Django tomonidan avtomatik ravishda qayta ishlanmaydi.
DEBUG = True bo‘lganda bu muammosiz ishlagan edi: ularni shunchaki ilovaning static papkasiga joylashtirishimiz kifoya edi.
DEBUG = False bo‘lganda esa statik fayllardan foydalanishdan oldin ularni yig‘ib, belgilangan papkaga joylashtirish kerak.
Statik fayllarni yig‘ish
Loyihangiz uchun barcha kerakli statik fayllarni yig‘ish uchun avval settings.py faylida STATIC_ROOT xususiyatini belgilang.
U statik fayllaringizni yig‘moqchi bo‘lgan papkani belgilaydi.
Papkani xohlagancha nomlashingiz mumkin, biz uni productionfiles deb nomlaymiz:
my_tennis_club/my_tennis_club/settings.py:
.
.
STATIC_ROOT = BASE_DIR / 'productionfiles'
STATIC_URL = 'static/'
.
.
Bu papkani qo‘lda yaratib, loyihangizdagi barcha statik fayllarni yig‘ib, unga joylashtirishingiz mumkin edi, ammo Django’da buni siz uchun bajaradigan buyruq bor:
python manage.py collectstatic
Natija quyidagicha bo‘ladi:
128 static files copied to 'C:\Users\your_name\myworld\my_tennis_club\productionfiles'.
128 ta fayl? Nega buncha ko‘p? Buning sababi — Django bilan birga o‘rnatilgan holda keladigan admin foydalanuvchi interfeysi. Biz bu imkoniyatni production muhitida ham saqlab qolmoqchimiz, u esa stil fayllari, shriftlar, rasmlar va JavaScript fayllari kabi juda ko‘p fayllar bilan birga keladi.
Kompyuteringizdagi fayl tizimini tekshirsangiz, yangi papka yaratilganini ko‘rasiz: productionfiles. Bu papkada admin interfeysi uchun statik fayllar joylashgan admin papkasi hamda Statik fayllar qo‘shish bobida yaratgan myfirst.css faylingiz bor.
my_tennis_club
members/
my_tennis_club/
productionfiles/
admin/
myfirst.css
Endi misol ishlashi kerak
Endi loyihangizning statik fayllarini yig‘dingiz va agar WhiteNoise’ni o‘rnatgan bo‘lsangiz, Statik fayllar qo‘shish bobidagi misol nihoyat ishlaydi.
Serverni ishga tushiring va natijani ko‘ring:
python manage.py runserver
Va natijani o‘z brauzeringizda ko‘ring: 127.0.0.1:8000/testing/.
Misol
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>
Misolni ishga tushirish »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
