具体来说,如何为“静态”端点分配新的处理程序?我知道我可以更改static_folder
和static_path
,但我特别想要分配一个不同的函数来处理路由映射中路由到“静态”端点的任何URL的请求。我尝试将werkzeug.routing.Map
分配给<Flask app>.url_map
,但无效 - 我在尝试View function mapping is overwriting an existing endpoint function: static
时仍然收到错误(“add_url_rule
”)。
提前致谢。
答案 0 :(得分:14)
将static_folder
设置为None
以阻止Flask注册视图:
app = Flask(static_folder=None)
现在您可以自由创建自己的。
或者,让static
视图使用不同的URL路径,并为您的备用路径提供不同的端点名称:
app = Flask(static_url_path='/flask_static')
@route('/static/<path:filename>')
def my_static(filename):
# ...
Flask将始终使用端点名称static
作为其创建的视图,因此上面使用my_static
代替。