Django templates-主页中呈现的媒体根目录中的图像,而不是其他页面

Django templates-主页中呈现的媒体根目录中的图像,而不是其他页面,django,image,django-templates,render,Django,Image,Django Templates,Render,我有一个在我的主页上呈现的图像,但它不在使用相同代码的不同页面上。我想问题可能是我的url路径不同,也许?这是我能找到的唯一区别。当我检查每个元件时,我看到的是: 工作图像:/event/image.png 损坏的图像:/event/media/Image.png 我在我的模板中渲染图像,如下所示: <img src="media/{{event.image}}" class="img-responsive" /> 在我的终端

我有一个在我的主页上呈现的图像,但它不在使用相同代码的不同页面上。我想问题可能是我的url路径不同,也许?这是我能找到的唯一区别。当我检查每个元件时,我看到的是:

工作图像:/event/image.png

损坏的图像:/event/media/Image.png

我在我的模板中渲染图像,如下所示:

        <img src="media/{{event.image}}" class="img-responsive" />
在我的终端上,它说找不到图像。那么,我如何才能更改设置,使其在正确的目录中显示,而不管我在哪个路径中?以下是我的媒体设置:

if DEBUG:
    MEDIA_URL = '/media/'
    STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static', 'static-only')
    MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static', 'media')
    STATICFILES_DIRS = (
        os.path.join(os.path.dirname(BASE_DIR), 'static', 'static'),
    )
您需要一个前导斜杠:“/media/…”

但是,更好的方法是使用内置属性,该属性提供完整的URL,包括媒体URL:

<img src="{{ event.image.url }}" class="img-responsive">

您需要一个前导斜杠:“/media/…”

但是,更好的方法是使用内置属性,该属性提供完整的URL,包括媒体URL:

<img src="{{ event.image.url }}" class="img-responsive">

不要像
media/{{{event.image}}
那样自己构建url,让Django为您完成这项工作:

    <img src="{{ event.image.url }}" class="img-responsive" />


这样,Django将使用您的设置中的
MEDIA\uURL
创建正确的URL。请注意,您的web服务器配置必须与此匹配,并在
MEDIA\u URL

上提供来自
MEDIA\u ROOT
的图像,而不是像
MEDIA/{{event.image}}
那样自己构建URL,让Django为您完成这项工作:

    <img src="{{ event.image.url }}" class="img-responsive" />


这样,Django将使用您的设置中的
MEDIA\uURL
创建正确的URL。请注意,您的web服务器配置必须与此匹配,并从
MEDIA\u ROOT
上的
MEDIA\u URL

提供图像!谢谢你,我明白了!非常感谢您的及时回复!谢谢你及时的回答!