Обслуживание статических файлов с помощью 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'
Текущее отображение моего проекта
Сопоставление папки VAR
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;
}
}
Я надеюсь, что здесь достаточно информации, чтобы кто-нибудь помог мне с этой головоломкой. Я надеюсь, что это что-то простое, что я упустил из виду.