gpt4 book ai didi

flask - 如何在 Flask 应用程序中设置 static_url_path

转载 作者:行者123 更新时间:2023-12-03 15:29:22 26 4
gpt4 key购买 nike

我想做这样的事情:

app = Flask(__name__)
app.config.from_object(mypackage.config)
app.static_url_path = app.config['PREFIX']+"/static"

当我尝试:
print app.static_url_path

我得到了正确的 static_url_path
但是在我使用 url_for('static') 时的模板中, 使用jinja2生成的html文件还是有默认的静态URL路径 /static与失踪 PREFIX我添加的。

如果我像这样对路径进行硬编码:
app = Flask(__name__, static_url_path='PREFIX/static')

它工作正常。我究竟做错了什么?

最佳答案

当您创建 Flask() 时,Flask 会创建 URL 路由。目的。您需要重新添加该路线:

# remove old static map
url_map = app.url_map
try:
for rule in url_map.iter_rules('static'):
url_map._rules.remove(rule)
except ValueError;
# no static view was created yet
pass

# register new; the same view function is used
app.add_url_rule(
app.static_url_path + '/<path:filename>',
endpoint='static', view_func=app.send_static_file)

配置您的 Flask() 会更容易具有正确静态 URL 路径的对象。

演示:
>>> from flask import Flask
>>> app = Flask(__name__)
>>> app.url_map
Map([<Rule '/static/<filename>' (HEAD, OPTIONS, GET) -> static>])
>>> app.static_url_path = '/PREFIX/static'
>>> url_map = app.url_map
>>> for rule in url_map.iter_rules('static'):
... url_map._rules.remove(rule)
...
>>> app.add_url_rule(
... app.static_url_path + '/<path:filename>',
... endpoint='static', view_func=app.send_static_file)
>>> app.url_map
Map([<Rule '/PREFIX/static/<filename>' (HEAD, OPTIONS, GET) -> static>])

关于flask - 如何在 Flask 应用程序中设置 static_url_path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26722279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com