python - Django View 中的图像路径是相对于目录而不是 MEDIA_URL

标签 python django url-pattern imagefield

我已经被这个问题困扰了几天,但无法自己解决。我正在一个博客网站上工作。帖 subview 在 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/'

渲染帖 subview 时,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 仍然相对于目录呈现。任何帮助我走上正确道路的帮助都会很有用,非常感谢。

帖子模板:

{% 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 }}

关于python - Django View 中的图像路径是相对于目录而不是 MEDIA_URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47275502/

相关文章:

java - web.xml URL 模式

java - Tomcat Web xml URL-Pattern 不接受带参数的 url?

python - 使用 *args 和指定的列表索引对列表求和

django - 我应该在哪里排序和过滤?后端还是前端?

django - 更新表单 - 使用表单集 - 直到运行时才知道初始值

python - Django auto_now 和 auto_now_add

python - 类从哪里获得它们的默认 '__dict__' 属性?

python - Pandas ,处理 "Out of bounds timestamp..."

python - 使用不相等的值列表创建 Pandas 数据框

java - URL 模式不适用于 localhost url(没有 maven 的 jersey)