我正在尝试从Flask提供静态文件,但是静态文件包含一个未显示的图像。这是我的烧瓶代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return app.send_static_file("somefile.html")
if __name__ == '__main__':
app.run(debug = True)
这是我的html文件" somefile.html"这是在"静态"保存上述代码的目录下的子目录:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div> this is some garbage text </div>
<img id="ansvg" src="./ppnow.svg">
</body>
</html>
图形处于相同的静态&#34;子目录为somefile.html。
如果我将html文件直接拖到浏览器中,没问题,我得到图形,但如果我运行烧瓶服务器并指向localhost:5000,那么图形不会显示(尽管文本没有)。
发生了什么?谢谢。
答案 0 :(得分:2)
您正在根网址/
下提供HTML页面。然后,浏览器将根据根URL加载所有相对URL。
因此,您的图片将以/ppnow.svg
加载,而不是/static/ppnow.sgv
。
您可以修复图片的链接,也可以使用<base>
tag更改基本网址:
<base href="/static/">
请注意,如果没有域名(绝对URL),IE可能会忽略基本标记。