flask - 渲染静态文件时出现Flask内部服务器错误
问题描述
我是 Flask 的新手,我遇到了一个问题:当我返回一条消息时,例如:
app_setup.py
@app.route("/")
def hello():
return '''Hello World!'''
它工作正常。但是,当我尝试呈现静态 html 文件时,例如:
app_setup.py
@app.route("/")
def hello():
return render_template('static/index.html')
它给了我一个内部服务器错误。我怎样才能解决这个问题?
注意:我在 Docker 中使用 uWSGI 和 Nginx 运行 Flask。
主文件
from flask import *
app = Flask(__name__)
app.config['TEMPLATES_AUTO_RELOAD'] = True
from .core import app_setup
if __name__ == "__main__":
# Only for debugging while developing
app.run(host='0.0.0.0', debug=True, port=80)
解决方案
默认情况下,render_templates()
去寻找你的静态模板文件到/templates
你的应用程序的子目录中。一个好的方法是创建一个模板目录,并将静态文件移到index.html
那里。
虽然,如果您确实想为模板静态文件设置一个新目录,您可以在初始化应用程序时尝试以下操作:
import os
tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates')
# ...
app = Flask('myapp', template_folder=tmpl_dir)
推荐阅读
- .net-core - 具有多个配置文件和环境的 Ocelot
- powershell - 为什么 Write-Error 会终止脚本?
- android - 如何根据颤动中文本小部件的索引将多个文本小部件的数据传递给字符串列表
- xml - 为什么我的 XSL 样式表不能与我的 XML 一起使用?
- r - 类 tibble 的 Tibble 列而不是类数据框
- javascript - 无法将地图中的项目参数传递给 onClick
- node.js - 邮件因涉嫌垃圾邮件 Nodejs、Yandex、Firebase 功能而被拒绝
- firebase - Cloud Function 自动终止
- django - 根据模型的数量在 django 模板中使用特定的引导列
- javascript - 如何通过单击按钮更改 Javascript 中的 src 来更改多个图像