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

Flask部署至Render.com遇jinja2.TemplateNotFound问题求助

排查与解决Flask部署至Render.com的TemplateNotFound问题

1. 修复Flask路径配置(核心解决思路)

本地开发时相对路径可能正常,但部署到Linux环境的Render时,工作目录或路径解析逻辑会变化,改用基于文件绝对路径配置模板/静态文件夹更可靠:

修改app/__init__.py:

import os
from dotenv import load_dotenv
from flask import Flask

load_dotenv()
# 获取当前文件所在目录的绝对路径(app文件夹的路径)
base_dir = os.path.abspath(os.path.dirname(__file__))
# 基于绝对路径配置模板和静态文件夹
app = Flask(__name__, 
            static_folder=os.path.join(base_dir, 'static'),
            template_folder=os.path.join(base_dir, 'templates'))

from app import views

2. 检查文件名大小写

Render运行在Linux系统上,文件名严格区分大小写。确认app/templates/下的模板文件是小写的index.html,而非Index.html或其他大小写组合(本地Windows/macOS默认不区分大小写,不会报错)。

3. 修正启动入口文件(run.py)

你的run.py缺少必要的导入语句,部署时会导致app实例无法被正确识别:

修改run.py:

from app import app, db  # 补充导入app和db实例

if __name__ == '__main__':
    with app.app_context():
        db.create_all()
    app.run(debug=True)

4. 确认Render的启动命令

在Render的服务设置中,将启动命令设置为:

gunicorn run:app

该命令指向run.py中的app实例,是Python Web应用部署的标准方式。

5. 检查Git提交与.gitignore

  • 确认app/templates/文件夹已被提交到Git仓库,没有被.gitignore规则忽略。
  • 若templates文件夹未提交,执行以下命令并推送:
git add app/templates/
git commit -m "Add templates folder"
git push

6. 验证项目根目录

在Render的部署设置中,确认根目录是包含app文件夹和run.py的顶层目录,而非进入了app子目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:22:27