python flask-提供静态文件

python flask-提供静态文件,python,flask,Python,Flask,我正在尝试使用flask提供一个静态文件。我不知道如何使用url_函数。我所有生成动态内容的路由都工作正常,我已经为导入了url\u,但当我有以下代码时: @app.route('/') def home(): return url_for('static', filename='hi.html') 除了静态目录中的“hi.html”文件(其中包含一些基本的html),我加载页面时得到的是: /static/hi.html 我只是错误地使用了url\u吗?url\u for只返回该文件

我正在尝试使用flask提供一个静态文件。我不知道如何使用url_函数。我所有生成动态内容的路由都工作正常,我已经为导入了url\u,但当我有以下代码时:

@app.route('/')
def home():
    return url_for('static', filename='hi.html')
除了静态目录中的“hi.html”文件(其中包含一些基本的html),我加载页面时得到的是:

/static/hi.html


我只是错误地使用了url\u吗?

url\u for
只返回该文件的url。听起来您想
重定向到该文件的URL。相反,您只是将URL的文本作为响应发送到客户端

from flask import url_for, redirect

@app.route('/')
def home():
    return redirect(url_for('static', filename='hi.html'))

您正在获得所做工作的正确输出
url\u for
为您提供的参数生成url。在本例中,您正在为
static
目录中的
hi.html
文件生成url。如果您想实际输出该文件,您应该

from flask import render_template, url_for

...

    return render_template(url_for("static", filename="hi.html"))
但此时,您的静态目录需要位于templates目录下(配置为活动的任何地方)


如果您打算像这样提供静态html文件,那么我的建议是,通过将流量直接从web服务器路由到
/static/*
,在flask应用程序之外提供这些文件。网络上有很多使用nginx或apache的例子。

这里没有白痴,只有不知道的人。sberry关于提供静态文件的建议也很合适。谢谢-我完全打算直接从我的web服务器提供静态文件,就在我开发的时候,我希望能够使用flask为它们提供服务,最让我疯狂的是。