You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask访问/image_analysis_result不显示JPG图片,img标签破损如何修复

问题原因

你遇到的404错误核心原因是:你直接把Jinja2模板的插值语法{{url_for(...)}}写在了普通HTML字符串中,Flask只有在渲染模板文件时才会解析{{}}包裹的模板语法,硬编码的字符串不会被处理,因此浏览器会把{{url_for(当成图片URL的一部分发起请求,就出现了日志里的错误请求。
此外还有两个小问题:

  • HTML对应的正确MIME类型是text/html,你写的application/html不符合标准
  • 标准HTML图片标签是<img>,你写的<image>存在兼容性风险

修复步骤

  1. 首先修改Flask导入语句,加入url_for依赖:
from flask import Flask, json, request, url_for
  1. 修改get_image_analysis_result函数,直接在Python代码中调用url_for生成正确的静态资源路径,替换硬编码的模板语法,同时修正Content-Type配置:
@api.route('/image_analysis_result', methods=['GET'])
def get_image_analysis_result():
    path = IMAGE_RESULT_PATH
    # 检查图片是否存在
    isExist = os.path.exists(path)
    if isExist:
        # 调用url_for生成正确的静态资源访问地址
        img_url = url_for('static', filename='outputs/output.jpg')
        # 用f-string把路径插入到HTML字符串中
        content = f"<!DOCTYPE html><html><body><h1>sent message</h1><p><img width='100%' height='100%' src='{img_url}' ></p></body></html>"
    else:
        content = "<!DOCTYPE html><html><body><h1>sent message</h1><p>NO RESULT</p></body></html>"

    mock_response = MockResponse(
    # 修正为正确的HTML MIME类型
    headers={'Content-Type' :'text/html; charset=UTF-8'},
    status_code=200,
    reason='Success',
    _content=content)

    return mock_response.content

验证说明

修改后重启服务,只要你的output.jpg确实存放在Flask默认的static/outputs/目录下,访问http://localhost:5005/image_analysis_result就能正常加载图片。

内容的提问来源于stack exchange,提问作者cyber101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:15:08