在Flask中提供静态文件,输出是文件名而不是内容

时间:2018-11-27 18:07:22

标签: python flask

我正在尝试在烧瓶中提供两个名为index.htmlmain.js的静态文件。我的代码如下:

from flask import Flask, url_for

app = Flask(__name__)


@app.route('/')
def host_html():
    return url_for('static', filename='index.html')



@app.route('/map.js')
def host_map():
    return url_for('static', filename='map.js')


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

但是,网页上的输出为/static/index.html。我想念什么?

1 个答案:

答案 0 :(得分:1)

url_for函数仅返回一个url,而不是实际文件。在这种情况下,您要使用的是send_from_directoryhttp://flask.pocoo.org/docs/1.0/api/#flask.send_from_directory

总的来说,我想您真正想做的是在一个Jinja模板中使用url_for,然后由render_template返回。