我有一个在我的主页上呈现的图片,但它不使用相同的代码在不同的页面上。我想问题可能是我的网址路径可能不同?这是我能找到的唯一区别。当我检查每个元素时,这就是我所看到的:
工作形象:/event/image.png
破碎图片:/event/media/image.png
我在模板中渲染这样的图像:
<img src="media/{{event.image}}" class="img-responsive" />
我的模型只是一个模型。图像字段,这是我对破碎图像页面的看法:
def event(request, product_id):
event = get_object_or_404(Event, id=product_id)
image = event.image
context = {'event':event, 'image':image}
template = 'tourney.html'
return render(request, template, context)
在我的终端中,它表示未找到图像。那么如何更改我的设置,以便无论我在哪条路径上,它都会在正确的目录中查找?以下是我的媒体设置:
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'),
)
答案 0 :(得分:1)
你需要一个领先的斜杠:“/ media / ...”。
但是,更好的方法是使用内置属性,为您提供完整的URL,包括MEDIA_URL:
<img src="{{ event.image.url }}" class="img-responsive">
答案 1 :(得分:1)
不要像@ {1}}那样自己构建网址,让Django为你做这个工作:
media/{{event.image}}
这样,Django将使用您设置中的 <img src="{{ event.image.url }}" class="img-responsive" />
创建正确的URL。请注意,您的网络服务器配置必须与MEDIA_URL
MEDIA_ROOT
提供的图像相匹配