رفع مشکل ۴۰۴ پوشهی static در جنگو
یکی از پوشههای پر کاربرد در django پوشهی static است که معمولا در آن فایلهای css و javascript و کتابخانههایی نظیر بوت استرپ و … قرار میگیرد و برای استفاده در صفحات یا viewها از این فولدر کمک زیادی خواهند گرفت. در این نوشته به شما روش حل مشکل خطای 404 در پوشهی static را در فریمورک جنگو توضیح خواهیم داد. این آموزش معمولا برای افراد مبتدیتر کاربرد دارد.
رفع مشکل ۴۰۴ پوشهی static در جنگو
برای رفع این مشکل کافیست دو فایل urls.py و settings.py را ویرایش کنید. در فایل settings.py به دنبال بخشی که در آن کد زیر موجود است بگردید:
STATIC_URL = '/static/'
این خط را پاک کنید و قطعه کد زیر را به جای آن قرار دهید:
STATIC_URL = '/static/'
STATIC_ROOT = f'{BASE_DIR}/staticfiles'
STATICFILES_DIRS = [
f'{BASE_DIR}/static'
]
سپس فایل settings.py را ذخیره کنید. در مرحلهی بعدی فایل urls.py ا باز کنید و کد زیر را به پایان خطی که متغیر urlpatterns وجود دارد قرار دهید. برای نمونه از کد زیر استفاده کنید:
urlpatterns = [
path('admin/', admin.site.urls),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
بعد از تغییر بالا این فایل را نیز ذخیره کنید و بعد از اینکه مجدد برنامهی خود را اجرا کنید دیگر فایلهای موجود در پوشهی static فریم جنگو خطای 404 نخواهند داشت.
اگر مشکل شما حل نشد در بخش نظرات همین نوشته آن را برای ما بنویسید.



















روی ویندوز و لینوکس فرقی داره؟
خیر، این تنظیمات روی هر دو سیستم عامل ویندوز و لینوکس یکسان عمل میکنند.
برای من وقتی collectstatic اجرا میکنم درست میشه، ولی بعدش دوباره 404 میاد
گاهی اوقات این مشکل با اجرای مجدد collectstatic بعد از هر تغییر در فایلهای استاتیک یا تنظیمات، حل میشود. اگر باز هم مشکل داشتی، لطفا جزئیات بیشتری از تنظیمات settings.py و ساختار پوشههای پروژهات را به اشتراک بگذار تا بهتر راهنمایی کنیم.
مرسی از آموزش کاملتون
موفق باشین
این تغییرات برای محیط پروداکشن هم لازمه یا فقط لوکال؟
این تنظیمات عمدتاً برای محیط توسعه (لوکال) کاربرد دارند. در محیط پروداکشن، معمولاً از روشهای دیگری برای سرویسدهی فایلهای استاتیک استفاده میشود
خیلی وقت بود درگیر همین خطای 404 بودم، با این روش درست شد
موفق باشین