Статические файлы не загружаются в 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