1

所以我有一个网站,它的结构由各种模板组成:

- index //the html skeleton, with script tags and css links
- header //the header of the page
- topnavigation //contains the main nav with the menu
- content //this is where the dynamic content will be changed for different pages
- footer //the footer

现在,我知道整合它的唯一方法是:

res.render(content);    
content -> inherits footer
footer -> inherits topnavigation
topnavigation-> inherits header
header -> inherits index

我认为如果我能有类似的东西,它会更加实用和易于维护:

res.render(content);
content -> inherits dochead
index -> includes header + topnnavigation + footer
  • 我错了吗?
  • 如果我是对的,我该怎么做?

谢谢

4

1 回答 1

3

典型的extends设置更像是这样:(对于一个工作示例,您可以在此处查看 Swig 文档如何设置其布局:https ://github.com/paularmstrong/swig/tree/master/docs/layouts )

  • skeleton.html带有块的 html 骨架:
    • {% block html %}
    • {% block css %}
    • {% block js %}
    • {% block body %}
  • base.htmlextends skeleton.html,带有块/子块的基本布局:
    • {% block body %}
      • {% block header %}包括一些默认的标题内容。
        • {% block nav %}包括主要的导航内容。
      • {% block content %}空的
      • {% block footer %}包括版权等。
  • index.html延伸base.html
    • {% block nav %}(导航的内容,可能,否则只base.html渲染它的导航内容
    • base.html您还将根据需要覆盖此处设置的任何其他块。如果您发现自己需要对模板进行更多控制,请考虑创建另一个扩展的子布局,base.html然后index.html改为扩展它。
于 2013-11-16T05:32:31.770 回答