Flask应用本地正常 部署到Toolforge服务器出现重定向过多/404错误
问题根源及修复方案
1. 无限重定向问题修复
你代码中定义的两个路由属于完全错误的逻辑,直接删除即可:
# 这两段直接删掉 @app.route('/') def index(): return flask.redirect(flask.url_for('index')) @app.route('/editing_buddy') def buddy(): return flask.redirect(flask.url_for('buddy'))
url_for('index')返回的就是当前/路由的路径,等于访问/就重定向到/,自然触发无限重定向,/editing_buddy同理。
你已经给Dash应用配置了url_base_pathname,Dash会自动接管对应路径的路由,不需要额外写重定向逻辑。Flask默认会把不带末尾斜杠的/editing_buddy自动301重定向到带斜杠的/editing_buddy/,正好匹配你Dash的路径配置。
2. 服务器404问题修复
检查两个配置点:
- Dash绑定的Flask实例名称错误:你在app.py中定义的Flask实例变量名为
app,但初始化Dash时写的是server=application,app.py中不存在application这个变量,导致Dash没有正确挂载到Flask服务上。把所有Dash初始化代码里的server=application改成server=app即可。 - 代码执行顺序调整:把app.py里的启动逻辑块移到整个文件的最末尾,确保所有配置加载、路由注册、Dash初始化都完成后再执行启动逻辑:
# 这部分移到app.py最后 if __name__ == '__main__': app.run_server(host='0.0.0.0', threaded=True, debug=True)
修改完成后重新部署重启服务即可正常访问。
内容的提问来源于stack exchange,提问作者Destokado
相关产品推荐
相关产品推荐

