是否有引用本地文件的语法?例如
无需编写:
{% include 'user/project/task/task_detail/tab.html' %}
我要写(从与tab.html位于同一目录中的文件):
{% include './tab.html' %}
但是上面提到了jinja2.exceptions.TemplateNotFound
答案 0 :(得分:1)
您可以继承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
的重复项答案 1 :(得分:0)
Flask / j2需要知道查找文件的结构,并且知道应用程序子文件夹的基本结构(静态,模板等)。
最好的方法是将其放在静态子文件夹中,然后使用url_for
函数指向它:
..."{{ url_for('static', filename='<subfolder>/tab.html') }}"...
`