除了出于“安全原因”必须给 ssi 一个绝对路径之外,它们似乎基本相同。除了关键字参数(自 1.3 版以来新增)外,两者似乎具有完全相同的功能。它们真的是多余的吗?
最佳答案
没有 {% ssi %}
的 parsed
参数,包含的文件将不会被视为 Django 模板,它只会作为普通文本包含在内。这意味着如果包含的文件有模板标签/过滤器,它们将不会被解释。
当您确实包含parsed
参数时,差异会变得更像您所说的那样。
{% ssi %}
增加了安全限制,因为您可以在文件系统中包含任何文件。- 您必须使用绝对 URI 而不是适合模板加载器的相对路径。
- 在 Django 1.5 之前,第一个参数(路径)必须不带引号。这意味着您不能将模板变量用作第一个参数。
在 the documentation 中有关于最后一点的更多详细信息.
关于python - {% include ... %} 标签和 Django 模板中的 {% ssi ... parsed %} 标签有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6324575/