Я боролся с этой проблемой в течение нескольких дней и не мог решить ее самостоятельно. Я работаю над сайтом-блогом. Представление публикации отображается по URL, например:
domain.com/blog/specificpost/
В моей модели есть ImageField. Изображения загружаются правильно, и я могу обращаться к изображениям по правильным URL-адресам.
domain.com/media/asset.jpg
В моем settings.py я определил пути мультимедиа. Когда я получаю доступ к файлам изображений от администратора, они работают правильно.
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
При рендеринге вида поста путь к изображению в DOM отображается неправильно. Это:
domain.com/blog/media/asset.jpg
Должен быть:
domain.com/media/asset.jpg
В моем urlpattern я добавил:
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
и добавил соответствующий импорт в urls.py. Я считаю, что этот код должен обслуживать файлы в корне домена во время разработка.
Я перепробовал все решения здесь, но URL-адреса изображений по-прежнему отображаются относительно каталог. Любая помощь, чтобы установить меня на правильном пути, будет полезна, большое спасибо.
Шаблон сообщения:
{% extends "base.html" %}
{% block journal_entry %}
<main class="content">
<section class="photo">
<img src="{{ object.image }}">
</section>
<section class="entry">
<section class="entry-content">
{{ object.body|linebreaks }}
</section>
<section class="entry-meta">
{{ object.created }}<span class="user-options"> • <a href="#">Delete</a></span>
</section>
</section>
</main>
{% endblock %}