搜索路径之外的Jinja2 {%include file%}不起作用

时间:2018-04-27 09:01:07

标签: python jinja2

这是一个基本问题,可能与Jinja2 PrefixLoader或ChoiceLoader有关。

在Python 3.6上,我们使用此命令加载

jinja2.FileSystemLoader( searchpath= "\\template_folder\\")

在Windows 7上,我们的文件结构如下。

- folder_bbb
    * subfile.txt
- template_folder
     * template_file
     - folder_aaa
         * subfile.txt

从template_file我们成功使用此命令

{% include "folder_aaa/subfile.txt" %} 

现在我们希望将文件向上移动一级,然后编写

{% include "../folder_bbb/subfile.txt" %}

但是这不起作用,抱怨找不到文件。

正确的写作方式是什么?感谢。

1 个答案:

答案 0 :(得分:0)

您可以指定装载程序中的所有路径

jinja2.FileSystemLoader(["c:\\template_folder\\", "c:\\folder_bbb\\"])

并参考没有特定路径的包含块

{% include "subfile.txt" %} 

将按顺序搜索路径,以便按照您的说法将文件向上移动一级,即可找到该文件。 (您需要模板本身的template_folder路径。)