将Flask应用部署到Heroku - 模板未找到
我正在用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 个回答
你的 templates
文件夹应该和你的应用程序放在一起。把它移动到 /helloflask/helloflask
这个位置。
可以参考第2点,详细信息请查看 这里。
试着在应用程序的根目录下创建一个名为/templates的文件夹,看看这样能否解决问题。我记得在Flask中可以设置模板文件夹,只是现在找不到具体的设置方法。
另外,你可能会对这个关于在Heroku上部署Flask的GitHub仓库感兴趣。 https://github.com/zachwill/flask_heroku
还有,可以看看这个关于文件夹结构的StackOverflow帖子 - flask blueprint template folder 如果你想把模板放在helloflask下面,可能会想用Flask蓝图(Blueprints)。
我没有在Heroku上使用Flask,所以没有验证过这个设置。希望这些信息对你有帮助。