Flask中static文件夹下的本地图片无法在HTML页面加载怎么办?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的世界</title>
</head>
<body>
<h2>中国联通</h2>
<div>
    赵谦算


    <img src="https://haowallpaper.com/link/common/file/getCroppingImg/15730813560787264" style="width: 300px; height: 300px;"/>
</div>
<h2>广西联通</h2>
<div>
    窗外的麻雀在电线杆上多嘴,你说的一句很有夏天的感觉,手中的铅笔在纸上来来回回,我用几行字描述你是我的谁,
    秋刀鱼的滋味,猫跟你都想了解,
    <a href="/get/news">查看更多</a>

    <img src="static/zzm.png">

</div>
</body>
</html>
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/goods/list")
def goods_list():
    return render_template('goods_list.html')


if __name__ == '__main__':
    app.run()

初学flask,在static包下的本地图片在html页面加载不出来

flask html 不能加载本地图片资源问题,还有根据网上所说添加static包后也可以成功,但我依然没成功

阅读 3.7k
3 个回答

你把这个img标签的src换成一个在线图片的链接地址应该是可以成功的,这里不能加载应该是因为没有提供一个静态资源接口让页面获取图片,所以需要加一段代码

from flask import after_this_request

@app.get('/static/<string:filename>')
def source(filename):
    @after_this_request
    def check_content_type(response):
        if filename.endswith('.png'):
            response.headers['Content-Type']='image/png'
        return response
    f=open(f'/static/{filename}','rb')
    feedback=f.read()
    f.close()
    return feedback

可以参考一下这个例子,这是我以前写的一个项目,可以在https://gitee.com/viscaria-virus/order-applet查看。

尝试修改:

<img src="{{url_for('static',filename='zzm.png')}}" alt="img">

我根据你给出的目录结构,把那个路径修改了一下,这个是我新写的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>我的世界</title>
</head>
<body>
<h2>中国联通</h2>
<div>
    赵谦算

    <img src="https://haowallpaper.com/link/common/file/getCroppingImg/15730813560787264" style="width: 300px; height: 300px;"/>
</div>
<h2>广西联通</h2>
<div>
    窗外的麻雀在电线杆上多嘴,你说的一句很有夏天的感觉,手中的铅笔在纸上来来回回,我用几行字描述你是我的谁,
    秋刀鱼的滋味,猫跟你都想了解,
    <a href="/get/news">查看更多</a>

    <img src="{{ url_for('static', filename='images/zzm.png') }}" alt="Image">

</div>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏