Обслуживание статических файлов с помощью NGINX и DJANGO

Я новичок в программировании и мне удалось создать моему отцу сайт, где он может показать свои фотографии, недавно мне пришлось перейти с виртуального хостинга на свой собственный VPS, который использует ubuntu, чтобы дать мне больше контроля и доступа к последним пипсам.

У меня все работает на локальном сервере в отношении статических файлов, все загружается туда, куда нужно (для меня это были static/media).

На производстве у меня сайт работает идеально, за исключением того, что любой css работает для моих шаблонов или даже панели администратора, а изображения не отображаются.

Я выполнил следующие команды, чтобы достичь своего результата, поэтому я также поделюсь некоторым кодом и скриншотами текущей конфигурации. Также были созданы папки с изображениями, вместо того, чтобы изображения попадали в папку media. Изображения в браузере также имеют расширения image/image/test4.

DEBUG = False

sudo chown -R www-data:www-data /home/dave/mhprints/static

sudo chmod -R 777 /home/dave/mhprints/static

sudo chown -R www-data:www-data /home/dave/mhprints/staticfiles

sudo chmod -R 777 /home/dave/mhprints/staticfiles

sudo chmod -R 777 /var/www/staticfiles

sudo chmod -R 777 /var/www/staticfiles

У меня установлено поле ImageField с upload_to='media'

Текущее отображение моего проекта

project mapping

Сопоставление папки VAR

var mapping

ROOTS AND URLS in settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
     os.path.join(BASE_DIR, 'static')
    ]
CKEDITOR_UPLOAD_PATH = "uploads/"

URLS.py

from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns


urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('mhpapp.urls')),
    path('ckeditor/', include('ckeditor_uploader.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

файл sites_enabled/mhprints

server {
    listen 80;
    server_name my_ip;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static {
            root /var/www;
        }
    location /media {
            root /var/www/static;
        }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Я надеюсь, что здесь достаточно информации, чтобы кто-нибудь помог мне с этой головоломкой. Я надеюсь, что это что-то простое, что я упустил из виду.

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