الملفّات الثابتة (Static)
CSS و JS والصور الخاصّة بالموقع:
# settings.py
STATIC_URL = "static/"
STATICFILES_DIRS = [BASE_DIR / "static"]
{% load static %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<img src="{% static 'logo.png' %}">
ملفّات الوسائط (Media) — رفع المستخدمين
# settings.py
MEDIA_URL = "media/"
MEDIA_ROOT = BASE_DIR / "media"
# model
class Profile(models.Model):
avatar = models.ImageField(upload_to="avatars/")
<img src="{{ profile.avatar.url }}">
الفرق
- static: أصول الموقع الثابتة (يكتبها المطوّر).
- media: ملفّات يرفعها المستخدمون.
للإنتاج
python manage.py collectstatic # يجمع كل static في مجلّد واحد
ثم يخدمها خادم ويب (Nginx) أو خدمة تخزين.
🎯 التالي: العلاقات.