tgoop.com/djangolearn_ir/1138
Create:
Last Update:
Last Update:
نکته هایی در مورد فایل های استاتیک جنگو – بخش سوم - آخر
توی دو بخش قبل گفتبم جنگو چطور فایل های استاتیک رو مدیریت میکنه.
حالا میخواهیم ببینیم توی development و production چه فرقی هست؟
وقتی debug=true باشه (یعنی حالت development) جنگو خودش فایل های استاتیک رو سرو میکنه.
این برای تست کافیه، ولی روی سرور واقعی (production) اصلاً توصیه نمیشه. چون هم کند ع هم امن نیست. (توضیح اینو توی کامنت همین پست میزارم)
توی production باید (بهتره) وب سرور (مثل nginx یا apache) فایل های استاتیک رو سرو کنن.
برای همین دستور collectstatic رو اجرا میکنیم تا همه فایل ها توی یه پوشه (همون STATIC_ROOT) جمع بشن و بعد اون مسیر رو برای وب سرور مشخص می کنیم.
فرض کن STATIC_ROOT ما اینه:
/home/youruser/myproject/staticfiles/
توی nginx معمولا اینجوری می نویسیم:
location /static/ {
alias /home/youruser/myproject/staticfiles/;
}
اینجا alias ینی:
هر وقت کاربر آدرس /static/... خواست، nginx برو سراغ پوشه staticfiles/ و ادامه مسیر رو اونجا پیدا کن.
مثلا:
/static/css/style.css
تبدیل میشه به:
/home/youruser/myproject/staticfiles/css/style.css
یه دستور دیگه هم هست به اسم root:
location /static/ {
root /home/youruser/myproject/;
}
اینجا مسیر /static/ از URL حذف نمیشه و میچسبه به آخر root.
مثلا همون آدرس ع بالا:
/static/css/style.css
میشه:
/home/youruser/myproject/static/css/style.css
فرق شون چی شد؟
اون alias - بخش location (یعنی /static/) رو کنار می ذاره.
اون root - بخش location رو نگه میداره و به مسیر اضافه می کنه.
برای همین ما معمولا برای static files از alias استفاده میکنیم.
اسپانسر این پست 👈 لینک
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/1138