You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask应用部署Heroku报H10错误App crashed本地运行正常如何解决

Heroku部署Flask+React项目H10错误解决方案

常见错误排查步骤

  • 检查__init__.py的工厂函数配置:不要在全局作用域写app.run()代码,该代码仅本地调试时放在if __name__ == '__main__'判断内即可,gunicorn导入模块时如果触发app.run()会直接导致服务崩溃。
  • 检查依赖完整性:确认requirements.txt中已经添加gunicorn依赖,所有Flask相关依赖版本和本地运行环境一致,避免版本不兼容导致启动失败。
  • 检查端口绑定逻辑:不要在代码中硬编码端口号,Heroku会通过PORT环境变量动态分配端口,若代码中有手动指定端口的逻辑,需替换为读取环境变量:port = int(os.environ.get("PORT", 5000))。
  • 检查Procfile配置是否匹配项目结构:你当前的Procfile内容web: gunicorn -w 4 "flaskr:create_app()"本身没有语法问题,需确认flaskr/__init__.py中导出的工厂函数名称确实为create_app,没有拼写错误。

前后端是否需要分开部署

不需要强制分开部署,同仓部署完全可以正常运行,只需补充两个配置即可:

  • 配置多构建包:Heroku默认只会识别Python环境,不会自动构建React项目,你需要在Heroku后台先添加Node.js构建包,再添加Python构建包,部署时会先自动执行React打包命令,将产物输出到指定目录后再启动Flask服务。
  • 配置静态资源路由:在Flask中补充路由规则,访问根路径时返回React打包后的index.html文件,非接口请求统一fallback到React的入口文件,避免前端路由访问报错。

快速定位问题方法

可以先移除前端相关的所有配置,只保留最简单的Flask测试接口(比如根路径直接返回字符串),先完成后端的部署验证,确认后端可以正常启动后再逐步添加前端整合配置,即可快速定位是后端启动问题还是前后端整合配置问题。

内容的提问来源于stack exchange,提问作者M-Rb3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:36:04