我试图禁用Jinja2的模板缓存。我已经做了一些环顾四周,并且我发现jinja环境中有一个app.jinja_env = jinja2.Environment(
cache_size = 0,
loader = jinja2.FunctionLoader(utils.load_template)
)
参数。我使用以下内容:
@app.route(...)
def page():
render_template('template') # from flask import render_template
我使用自定义加载程序根据域动态加载模板(应用程序为多个域提供服务)。不幸的是,使用它,看起来它覆盖了Jinja的默认过滤器和内置函数 - 使用
UndefinedError: 'url_for' is undefined
我收到signature GENERAL_FOO_BAR =
sig
type foo
type bar
(* lots of stuff here *)
end
错误。这样做的正确方法是什么?
答案 0 :(得分:27)
您可能想要设置app.config['TEMPLATES_AUTO_RELOAD'] = True
。如果缓存版本不再与模板文件匹配,它将重新加载模板,而不是禁用缓存。