【问题标题】:Flask serves static file, but without imagesFlask 提供静态文件,但没有图像
【发布时间】:2015-10-26 21:07:49
【问题描述】:

我正在尝试从 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>

该图形与 somefile.html 位于同一“静态”子目录中。

如果我将 html 文件直接拖到浏览器中,没问题,我会得到图形,但如果我运行烧瓶服务器并指向 localhost:5000,那么图形不会显示(尽管文本会显示)。

发生了什么事?谢谢你。

【问题讨论】:

    标签: python flask


    【解决方案1】:

    您正在根 URL / 下提供 HTML 页面。然后浏览器将根据根 url 加载所有相对 URL。

    因此,您的图像将被加载为/ppnow.svg,而不是/static/ppnow.sgv

    您可以修复图片的链接,或者您可以使用&lt;base&gt; tag 更改基本 URL:

    <base href="/static/">
    

    请注意,如果没有域名(绝对 URL),基本标签可能会被 IE 忽略。

    【讨论】:

    猜你喜欢
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 2015-11-03
    相关资源
    最近更新 更多