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

Heroku部署Flask应用遇/[GET]异常及TemplateNotFound错误求助

解决Flask部署Heroku出现TemplateNotFound的问题

根据你提供的日志和目录结构,问题核心是Heroku服务器上找不到home.html模板文件,但本地运行正常。下面是针对性的排查和解决步骤:

1. 确认模板文件已被Git跟踪并推送到Heroku

本地运行正常但Heroku找不到文件,最常见的原因是templates目录没被提交到Git,导致Heroku部署时没有包含这些文件:

  • 先检查.gitignore文件,确认没有添加templates/这类会排除模板目录的规则
  • 执行命令查看Git跟踪状态:
    git status
    
  • 如果templates下的文件显示为未跟踪状态,执行以下命令提交并推送:
    git add templates/
    git commit -m "Add all template files"
    git push heroku master
    

2. 显式指定Flask的模板文件夹路径

默认情况下Flask会自动识别根目录下的templates文件夹,但Heroku的环境中偶尔会出现相对路径解析异常。可以在初始化Flask应用时显式声明模板路径:

from flask import Flask

# 明确指定模板文件夹位置
app = Flask(__name__, template_folder='templates')

这样能确保Flask在任何环境下都能精准定位到模板文件。

3. 检查文件名大小写一致性

Heroku基于Linux系统,文件系统区分大小写;而本地如果是Windows系统则不区分。确认代码中render_template('home.html')的文件名和实际文件的大小写完全匹配,避免出现代码写Home.html但实际文件是home.html的情况。

4. 验证Heroku服务器上的文件结构

可以通过Heroku CLI直接查看服务器上的文件,确认templates目录和文件是否存在:

# 查看根目录结构
heroku run ls -la
# 查看templates目录下的文件
heroku run ls templates/

如果看不到home.html,说明文件确实没被部署到Heroku,回到步骤1重新处理Git提交。

5. 确认Procfile的路径配置

你的Procfileweb: gunicorn Credit:app配置是正确的,但要确保Credit.py确实在项目根目录下,和templates文件夹处于同一层级。如果Credit.py在子目录中,需要调整Procfile路径(比如web: gunicorn subdir.Credit:app),但根据你的目录结构,这应该不是问题。

按照以上步骤排查后重新部署,应该就能解决TemplateNotFound的错误了。

内容的提问来源于stack exchange,提问作者Shrikant Bhardwaj

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:28:07