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.

Я поступил следующим образом:

  1. Run python manage.py collectstatic on production server
  2. open port 8000 on the production server using ufw allow 8000
  3. 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

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