Как заставить изображение отображаться с помощью django?
Я не могу заставить свои изображения отображаться на моей веб-странице при использовании Django. Все, что я вижу, это отображаемый текст 'alt' изображения и значок сломанного изображения рядом с ним. Я могу успешно загрузить изображение, как было задумано изначально. Я использую экземпляр Ubuntu AWS с установленным на нем Apache для моего сервера. У меня также установлен Pillow для отображения изображений.
Я также могу успешно загрузить свой CSS, поэтому я знаю, что это, вероятно, не проблема с моими статическими каталогами или настройками.
Это мой файл settings.py:
Мой файл urls.py:
from django.views.generic import TemplateView
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
from django.http import HttpResponse
from django.urls import path, include
def home(request):
return HttpResponse("Home page")
urlpatterns = [
path('', TemplateView.as_view(template_name="index.html"), name="index"),
path('admin/', admin.site.urls),
path('accounts/', include('django.contrib.auth.urls')),
path('productapp/', include('product.urls', namespace='product'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Поскольку я использую Apache, я попробовал отредактировать файл apache2.conf, чтобы указать на указанную папку media следующим образом:
Alias /media/ /var/www/prodictapp/media/
Alias /static /var/www/productapp/static/
<Directory /var/www/productapp/static>
Require all granted
</Directory>
<Directory /var/www/productapp/media>
Require all granted
</Directory>
WSGIScriptAlias / /var/www/productapp/productapp/wsgi.py
WSGIPythonPath /var/www/productapp
<Directory /var/www/productapp/productapp>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Шаблон:
{% extends 'product/base.html' %}
{% block title %}{{ product.name }} - Details{% endblock %}
{% block body %}
<h3>Details for {{ product.name }}:</h3>
<p>
Name: {{ product.name }}<br>
Price: ${{ product.price }}<br>
Description: {{ product.description }}<br>
Quantity: {{ product.quantity }}<br>
{% if product.image %} {# If record has image, display it #}
Product image: <br><img src="{{ product.image.url }}" alt="{{ product.name }}"><br>
{% endif %}
</p>
{% endblock %}
Вы можете попробовать вот это
<img src="{% static product.image.url %}" /> # use this
<img src="{{ MEDIA_URL }}{{ product.image.url}}" /> # or this