Flask网站图片无法加载,显示user_image问题求助
Flask图片加载失败的解决方法
问题根源
- 静态资源存放路径错误:Flask默认从
static目录读取图片、CSS这类静态资源,你把图片放在templates/Image下,框架无法识别这个路径为静态资源目录。 - 本地路径拼接错误:代码里重复拼接了
templates/Image,生成的路径是templates/Image/templates/Image/image.png,完全不符合浏览器可访问的路径要求。 - 未用正确的URL生成方式:直接传递本地文件路径给模板,浏览器没法访问服务器上的本地文件路径,必须用Flask提供的
url_for生成可访问的URL。
修复步骤
1. 调整目录结构
在项目根目录新建static/Image文件夹,把image.png移进去,最终路径为static/Image/image.png。
2. 修改Python代码
from flask import Flask, render_template, url_for app = Flask(__name__) @app.route('/') @app.route('/index') def show_index(): # 用url_for生成静态资源的可访问URL user_image = url_for('static', filename='Image/image.png') return render_template("render.html", user_image=user_image) # 指定固定端口,方便其他电脑访问 app.run(host="0.0.0.0", port=5000)
3. 模板文件(render.html)无需修改
保持原代码即可:
<!DOCTYPE html> <html> <head> <title>Index</title> </head> <body> <img src="{{ user_image }}" alt="User Image"> </body> </html>
额外说明
其他电脑访问时,确保和服务器在同一局域网,用服务器的局域网IP加端口访问(比如http://192.168.1.100:5000),不要用localhost。
内容的提问来源于stack exchange,提问作者M. White
相关产品推荐
相关产品推荐

