最近我一直在 Django 中开发一个使用站点范围的 CSS 布局的项目,所以我决定使用的每个模板(在本例中为 /projects/index.html 中的模板)都将扩展一个包含标题的基本文件,页脚、javascript 等称为base.html
.
问题是我的目录结构如下所示:
.
├── static
│ └── base.html
├── templates
│ └── projects
│ └── index.html
而且,如您所见,我要扩展的基本文件位于比 index.html 文件更高的目录中。通常,我会使用相对路径并在索引文件的顶部使用以下代码:{% extends "../base.html" %}
或者只是使用文件的绝对路径(如有必要)
然而,似乎通过使用这两种方法中的任何一种,extends 引号内的任何内容都会简单地附加到当前路径上,而我使用 .. 对上层目录的调用被完全忽略。
也就是说,如果当前路径是,例如,/project/templates/projects
并且我使用{% extends "/project/static/base.html" %}
,那将被附加到当前路径,导致系统寻找/project/templates/projects/project/static/base.html
,当然,它不存在。在研究之后,我看到一篇文章说,为了安全目的,阻止相对路径是故意的,但它让我无法访问当前工作目录之外的任何文件。
我认为在构建网站时这必须是一个非常常见的设置,因此必须有某种方式与我还不知道的多个模板进行交互。如果有人对此有任何信息,将不胜感激。