افزودن فایل های استاتیک (Add Static Files)
فایل استاتیک (Static File) یعنی فایل ثابت مثل CSS و تصویر. این فایل ها محتوا نیستند، اما ظاهر سایت را می سازند. الان گام به گام یک static می سازیم و در قالب وارد می کنیم.
ساخت پوشه static
یک پوشه با نام دقیق static کنار پوشه templates بساز.
my_tennis_club
manage.py
my_tennis_club/
members/
templates/
static/
حالا یک فایل CSS داخل پوشه static اضافه کن. نام مهم نیست.
my_tennis_club
manage.py
my_tennis_club/
members/
templates/
static/
myfirst.css
محتوای ساده برای فایل CSS بنویس.
body {
background-color: lightblue;
font-family: verdana;
}
اتصال CSS در قالب
اول در بالای قالب دستور بارگذاری استاتیک را بگذار.
{% load static %}
سپس لینک stylesheet را با تگ static اضافه کن.
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
نمونه کامل قالب را ببین.
{% load static %}
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="{% static 'myfirst.css' %}">
<body>
{% for x in fruits %}
<h1>{{ x }}</h1>
{% endfor %}
</body>
</html>
سرور را اجرا کن و نتیجه را ببین.
python manage.py runserver
تنظیمات برای توسعه و استقرار
برای بازی با پروژه، می توانی DEBUG = True بگذاری. اما بهتر است شیوه درست را یاد بگیری.
.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
.
.
می خواهیم با DEBUG = False هم کار کند. پس ALLOWED_HOSTS را تنظیم کن.
.
.
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['*']
.
.
نکته: هنگام انتشار واقعی، به جای '*' دامنه واقعی را بگذار.
هشدار: جنگو به تنهایی فایل استاتیک را در تولید سرو نمی کند. فصل بعد WhiteNoise را می بینیم.
گام های عملی
- پوشه static را بساز.
- myfirst.css را داخلش بگذار.
- در قالب {% raw %}{% load static %}{% endraw %} را بنویس.
- لینک CSS را با static اضافه کن.
- سرور را اجرا کن و نتیجه را ببین.
جمع بندی سریع
- نام پوشه باید static باشد.
- {% raw %}{% load static %}{% endraw %} را فراموش نکن.
- آدرس CSS را با static بساز.
- برای تولید، سرویس دهی استاتیک جداست.
- در فصل بعد WhiteNoise را یاد می گیری.
ادامه مسیر: مرتب سازی QuerySet را مرور کن. سپس برای سرو فایل ها در تولید، صفحه فایل های استاتیک جنگو را بخوان. همچنین برای قطعه های تکراری، از include استفاده کن تا قالب ها مرتب بمانند.