سید پارسا حسینی
2 سال پیش توسط سید پارسا حسینی مطرح شد
1 پاسخ

فایل های استاتیک جنگو در محلی دیگر

سلام،
من فایل های استاتیک در جنگو رو به جای اینکه توی فولدر اپ قرار بدم میخوام یه فولدر درست کنم توی کل پروژه، پون بعضی تمپلیت ها استاتیک یکی دارن نمیخوام دوباره استاتیک ها رو کپی کنم تا حجم پروژه بره بالا
ولی وقتی توی ستینگ آدرس استاتیک ها رو میزنم هیچ جوری نمیتونه فولدر استاتیک ها رو بشناسه، بعد همون فولدر رو که میبرم توی فولد اپ و آدرس رو توی ستینگ روی فولدر اپ میزارم، درست کار میکنه.

## آدرس فایل استاتیک ، وقتی که داخل فولدر اپ هست
STATIC_URL = 'static/'
STATIC_DIR = [
    BASE_DIR/"static"
]
## وقتی خارج از فولدر اپ هست و داخل فولدر اصلی هست و نمیتونه لود کنه
STATIC_URL = 'static/'
STATIC_DIR = [
    "static"
]

ثبت پرسش جدید
electera
@electera 2 سال پیش مطرح شد
0

شما نباید فایلهای استاتیک هر اپ رو داخل همون اپ قرار بدین، من تا حالا ندیدم کسی این کار رو انجام بده!
باید مشکل اصلی رو حل کنید:
اگر در حالت لوکال هستید و DEBUG = True در settings.py کد زیر رو قرار بدین، import os یادتون نره.

STATIC_URL = 'static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

در urls اصلی هم اینطوری:

from django.conf.urls.static import static
urlpatterns = [
    path('', include('account.urls')),
    path('admin/', admin.site.urls),

] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

اگر DEBUG = False هست و روی هاست یا سرور قرار دادین که کارهای بالا لازیم نیست و باید کد زیر رو قرار بدین:

STATIC_ROOT = '/home2/مسیر هاست/static'

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام