Django production server не отображает изображения, хотя файл журнала показывает, что изображения получены успешно
Я использую Django 3.2
Я могу правильно отображать изображения на локальном сервере (DEBUG=True). Сейчас я пытаюсь развернуть на рабочем сервере, используя nginx + gunicorn.
Вот соответствующие разделы в моем settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
# ...
]
MEDIA_URL = '/media/'
STATIC_ROOT = os.path.join(BASE_DIR, 'myproj/staticfiles')
STATIC_URL = "/static/"
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(BASE_DIR, 'myproj/static'),
)
# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
Я следую этому онлайн-документу , который показывает, как настроить Django с gunicorn + nginx + letsencrypt.
Я поступил следующим образом:
- Run
python manage.py collectstatic
on production server - open port 8000 on the production server using
ufw allow 8000
- Run:
python manage.py runserver 0.0.0.0:8000
, I get the following console output:
Выполнение проверки системы...
System check identified no issues (0 silenced).
November 10, 2021 - 02:22:01
Django version 3.2.3, using settings 'myproj.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
[10/Nov/2021 02:22:06] "GET / HTTP/1.1" 200 16536
[10/Nov/2021 02:22:06] "GET /static/img/photos/photo_01.jpg HTTP/1.1" 200 13914
[10/Nov/2021 02:22:07] "GET /static/img/favicon.svg HTTP/1.1" 200 13914
[10/Nov/2021 02:23:14] "GET / HTTP/1.1" 200 16578
[10/Nov/2021 02:23:14] "GET /static/img/photos/photo_02.jpg HTTP/1.1" 200 13914
[10/Nov/2021 02:23:14] "GET /static/img/favicon.svg HTTP/1.1" 200 13914
Однако, когда я просматриваю свой браузер, изображения не отображаются.
Что вызывает это, и как это исправить?
Попробуйте использовать пакет whitenoise