是否有引用本地文件的语法?例如
不必写:
{% include 'user/project/task/task_detail/tab.html' %}
我想写(从与 tab.html 位于同一目录中的模板):
{% include './tab.html' %}
但上面提出了 jinja2.exceptions.TemplateNotFound
最佳答案
您可以继承 Jinja 的环境并覆盖 join_path() 方法以支持相对于当前目录的导入路径。
class RelativeEnvironment(jinja2.Environment):
"""Override join_path() to enable relative template paths."""
def join_path(self, template, parent):
return os.path.join(os.path.dirname(parent), template)
但是请注意,Jinja 的查找模板机制旨在消除模板路径的歧义。
您可以在 https://jinja.palletsprojects.com/en/2.10.x/api/#jinja2.Environment.join_path 阅读更多内容
这个问题可能与 How to include a template with relative path in Jinja2 重复
关于python - Flask/Jinja2 - 包含相对于当前模板的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56670309/