Моя папка static, в которой я размещаю свои js и css файлы, находится не в корне моего проекта django. Как вызвать эти статические файлы в шаблоне?

Вот конфигурация моей переменной static_root: STATIC_ROOT = [os.path.join(BASE_DIR,'vol/web/static')] Мои шаблоны находятся в корне проекта.

TEMPLATES={
    ...
    'DIRS':[os.path.join(BASE_DIR, 'templates')],
    ...
}

Вот как я вызываю свой файл bootstrap.min.css в шаблоне проекта:

<link rel="stylesheet" href="{% static 'assets/plugins/bootstrap/css/bootstrap.min.css' %}">

Но это не работает, потому что файл не загружается. Как правильно это сделать?


Внутри main urls.py

from django.conf import settings as SETTINGS
from django.conf.urls.static import static

urlpatterns += static(SETTINGS.STATIC_URL, document_root=SETTINGS.STATIC_ROOT)
urlpatterns += static(SETTINGS.MEDIA_URL, document_root=SETTINGS.MEDIA_ROOT)

settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
STATIC_URL = '/static/'
STATICFILES_DIRS = (BASE_DIR / 'static',)
STATIC_ROOT = (BASE_DIR / 'static'/ 'static')
  1. Если вы храните свои js и css файлы в какой-то папке, то вам нужно указать эту папку в STATICFILES_DIRS настройках django. Например:
STATICFILES_DIRS = [
  "/home/my-user/my-project/static",
]

Тогда Django будет искать эту директорию(ии) при поиске файлов, указанных в теге {% static ... %}. https://docs.djangoproject.com/en/4.0/ref/settings/#staticfiles-dirs

  1. Если Django все еще не может найти определенный файл, попробуйте использовать команду управления findstatic для диагностики. Это покажет, в каких директориях django действительно ищет файл. Например:
python manage.py findstatic -v3 assets/plugins/bootstrap/css/bootstrap.min.css

https://docs.djangoproject.com/en/4.0/ref/contrib/staticfiles/#findstatic

Вернуться на верх