Django Отображение изображений, загруженных ImageField правильно - PullRequest
0 голосов
/ 24 сентября 2019

Я создаю свое собственное портфолио с помощью Django, и у меня только что возник вопрос относительно загрузки изображений с помощью ImageField.

Я загрузил изображение через страницу администратора с помощью ImageField, и после долгого сеанса поиска,наконец-то появилась моя страница для успешного отображения изображения.

urls.py

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

urlpatterns = [
    path('',include('pages.urls')), # main landing page
    path('admin/', admin.site.urls), 
    path('project/',include("projects.urls"))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

projects.html

<img src="{{project.image.url}}">

Тем не менее, официальные документы django говорят, что это плохой способ развертывания сайта django.Почему это так, и как лучше всего отображать изображения?

1 Ответ

1 голос
/ 24 сентября 2019

Причина также указана в documentation:

Этот метод крайне неэффективен и, вероятно, небезопасен, поэтому он не подходит для производства.

Правильный способ развертывания мультимедийных файлов в рабочей среде - использовать обратный прокси-сервер, такой как NGINX или Apache, или использовать хранилище, совместимое с S3 (например, Amazon S3), для обслуживания этих файлов мультимедиа.Я могу привести пример конфигурации в NGINX для обслуживания медиа-файлов:

location /media {
    alias /path/to/media/direcoty; # Change to your own media directory here.
    access_log off;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...