【问题标题】:Express with Pug template: Inheritance, how do I make Block work using different routes in Express?Express with Pug 模板:继承,如何在 Express 中使用不同的路由使 Block 工作?
【发布时间】:2019-09-11 03:01:50
【问题描述】:

块继承似乎没有工作,我不知道为什么不工作。我有两个哈巴狗文件。一,关于点哈巴狗和另一个h2点哈巴狗。 H2 文件应替换 about 文件块内容中的默认块内容,但没有任何反应。如果重要的话,我的文件位于两条不同路线上的视图文件夹设置中。我是帕格的新手,无法弄清楚。这是我的回复:

Repl

about.pug

html 
  head

body 
  block content 
    h1 Hello #{name}

h2.pug

extends about.pug

block content
   h2 hello PPL

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

    正如@Absor 所说,about.pug 文件需要渲染。为什么是因为带有extends关键字的文件是需要渲染的文件。我一开始以为是反过来的。我搜索了许多教程以了解这一点。

    例子:

    // Layout.pug -- 我希望在整个过程中包含的冗余 html 结构 html 身体 h1 你好,世界! 小时 阻止内容 // About.pug -- 这是我要渲染的文件。 app.get('/', (req,res)=> {res.render('about')}) 扩展布局 阻止内容 h2 嗨,我叫罗恩!

    结果:

    你好世界!


    嗨,我叫罗恩!

    【讨论】:

      【解决方案2】:

      您必须只渲染您在 (h2.pug) 中具有覆盖的模板。例如,如果您的根路由是

      app.get('/', (req, res) => {
        res.render('h2');
      });
      

      您可以在请求页面时看到“hello PPL”。您现在还可以看到您对 about.pug 所做的任何添加也是可见的。

      【讨论】:

      • 感谢您的尝试,但这并不能解决问题。我已经在根路由上有 about.pug,如果我也把 h2.pug 放在根路由上,只有 about.pug 显示,因为它是第一个声明。
      • 感谢您的回答。然而,需要更多的解释。我终于找到了一个解释它是如何工作的教程。
      猜你喜欢
      • 2019-02-19
      • 1970-01-01
      • 2012-07-20
      • 2023-03-26
      • 2018-06-07
      • 1970-01-01
      • 2017-10-02
      • 2015-08-13
      • 1970-01-01
      相关资源
      最近更新 更多