Django templates-主页中呈现的媒体根目录中的图像,而不是其他页面
我有一个在我的主页上呈现的图像,但它不在使用相同代码的不同页面上。我想问题可能是我的url路径不同,也许?这是我能找到的唯一区别。当我检查每个元件时,我看到的是: 工作图像:/event/image.png 损坏的图像:/event/media/Image.png 我在我的模板中渲染图像,如下所示: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" /> 在我的终端
<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
提供图像!谢谢你,我明白了!非常感谢您的及时回复!谢谢你及时的回答!