将Flask应用部署到Heroku - 模板未找到

3 投票
2 回答
5527 浏览
提问于 2025-04-17 15:38

我正在用Flask开发我的第一个应用,并准备部署到Heroku。下面是我在本地和Heroku上遇到的错误信息。你也可以在这里看到:http://warm-beyond-4111.herokuapp.com/

jinja2.exceptions.TemplateNotFound 找不到模板: home.html

错误的详细信息在这里:

File "/app/.heroku/python/lib/python2.7/site-packages/flask/templating.py",
line 61, in get_source raise TemplateNotFound(template)
TemplateNotFound: home.html

这是应用的概述:

目录: /helloflask

Procfile:

web: python run.py

requirements.txt

Flask==0.9
Jinja2==2.6
Werkzeug==0.8.3
distribute==0.6.28
wsgiref==0.1.2

run.py

import os
from helloflask import app
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port, debug=True)

目录: /helloflask/helloflask

__init__.py

from flask import Flask, render_template
app = Flask(__name__)
import helloflask.views

views.py

from helloflask import app
from flask import Flask, render_template
@app.route('/')
def home():
return render_template('home.html')

目录: /helloflask/templates

home.html = 一个标准的HTML文件

目录: /helloflask/static/css

main.css = 标准的CSS文件

我在网上找了很多答案,但都没有找到解决办法。有没有人见过这个问题?

2 个回答

1

你的 templates 文件夹应该和你的应用程序放在一起。把它移动到 /helloflask/helloflask 这个位置。

可以参考第2点,详细信息请查看 这里

3

试着在应用程序的根目录下创建一个名为/templates的文件夹,看看这样能否解决问题。我记得在Flask中可以设置模板文件夹,只是现在找不到具体的设置方法。

另外,你可能会对这个关于在Heroku上部署Flask的GitHub仓库感兴趣。 https://github.com/zachwill/flask_heroku

还有,可以看看这个关于文件夹结构的StackOverflow帖子 - flask blueprint template folder 如果你想把模板放在helloflask下面,可能会想用Flask蓝图(Blueprints)。

我没有在Heroku上使用Flask,所以没有验证过这个设置。希望这些信息对你有帮助。

撰写回答