Django 视图中的图像路径是相对于目录而不是 MEDIA_URL
Image paths in Django view are relative to directory instead of MEDIA_URL
几天来我一直在为这个问题苦苦挣扎,无法自行解决。我在一个博客网站上工作。 post 视图呈现在 URL 处,例如:
domain.com/blog/specificpost/
我的模型中有一个 ImageField。图片上传正确,我可以在正确的 URLs 处理图片。
domain.com/media/asset.jpg
在我的 settings.py 中,我定义了媒体路径。当我从管理员访问图像文件时,它们可以正常工作。
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
渲染 post 的视图时,图像路径在 DOM 中渲染不正确。它是:
domain.com/blog/media/asset.jpg
应该是:
domain.com/media/asset.jpg
在我的 urlpattern 中,我附加了:
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
并将相关导入添加到 urls.py。我相信此代码应该在 development.
期间为域根目录中的文件提供服务
我已经尝试了所有解决方案 here,但图像 URL 仍然相对于目录呈现。任何帮助我走上正确道路的帮助都会很有用,非常感谢。
Post 模板:
{% 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 %}
尝试在模板中使用 {{ object.image.url }}
而不是 {{ object.image }}
。
几天来我一直在为这个问题苦苦挣扎,无法自行解决。我在一个博客网站上工作。 post 视图呈现在 URL 处,例如:
domain.com/blog/specificpost/
我的模型中有一个 ImageField。图片上传正确,我可以在正确的 URLs 处理图片。
domain.com/media/asset.jpg
在我的 settings.py 中,我定义了媒体路径。当我从管理员访问图像文件时,它们可以正常工作。
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
渲染 post 的视图时,图像路径在 DOM 中渲染不正确。它是:
domain.com/blog/media/asset.jpg
应该是:
domain.com/media/asset.jpg
在我的 urlpattern 中,我附加了:
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
并将相关导入添加到 urls.py。我相信此代码应该在 development.
期间为域根目录中的文件提供服务我已经尝试了所有解决方案 here,但图像 URL 仍然相对于目录呈现。任何帮助我走上正确道路的帮助都会很有用,非常感谢。
Post 模板:
{% 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 %}
尝试在模板中使用 {{ object.image.url }}
而不是 {{ object.image }}
。