Статические файлы не загружаются в Django

Статические файлы не загружаются при запуске на сервере. Я пробовал использовать библиотеку whitenoise и обращался к документации (http://whitenoise.evans.io/en/stable/django.html), но безуспешно. Я новичок в Django, буду благодарен за любую помощь. PS: Я также собрал папку static с помощью-

python manage.py collectstatic

Ниже приведено то, что у меня есть в файле settings.py

INSTALLED_APPS = [
    'whitenoise.runserver_nostatic',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django_celery_beat',
    'django_extensions',
    'haystack',
    'users.apps.UsersConfig',
    'rest_framework',
    'rest_framework.authtoken',
    'django_db_logger.apps.DbLoggerAppConfig',
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

WSGI_APPLICATION = 'server.wsgi.application'

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static")

необходимо указать в Project/urls.py файле

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

urlpatterns = [
    # ... the rest of your URLconf goes here ...
]

# For static file and media
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL,
                          document_root=settings.STATIC_ROOT)

Например, если ваш STATIC_URL определен как static/, вы можете сделать это, добавив следующий фрагмент к вашему urls.py:

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

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Если статические файлы загружаются при локальном запуске, но не загружаются на сервере, возможно, вам нужно добавить что-то в конфигурацию вашего веб-сервера. Например, для nginx:

location /static/ {
    root /path/to;
}

location /media/ {
    root /path/to;
}

Больше подробностей и пример для Apache на https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/modwsgi/#serving-files

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