Statik fayllarni yig‘ish


ULASHISH

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!