Jade 模板布局无法与 Node.js 结合使用

2024-04-03

我正在尝试在 Node.js 中创建一个使用 Jade 模板和布局的简单服务器。 由于某种原因,它只会加载模板而不加载布局。

这是我所得到的:

main.js

var express = require('express');

var app = express.createServer();

app.set('views', __dirname + '/views'); 
app.set('view engine','jade');
app.set('view options', {
 layout: true
});

app.get('/', function(req,res) {
res.render('index', { title: 'My site' });
});

app.listen(4000);

如您所见,布局已启用。我尝试过在渲染方法中直接引用它,但没有什么区别。值得注意的是,“标题:‘我的网站’”也不起作用。

索引.jade

h2 Hello!
p I really hope this is working now

lo.jade

!!! 5
html
  head
    title Why won't this work
  body
    h1 I AM A LAYOUT
    div= body

这是我的npm list:

├─┬ [email protected] /cdn-cgi/l/email-protection 
│ ├── [email protected] /cdn-cgi/l/email-protection 
│ ├─┬ [email protected] /cdn-cgi/l/email-protection 
│ │ ├── [email protected] /cdn-cgi/l/email-protection 
│ │ ├── [email protected] /cdn-cgi/l/email-protection 
│ │ ├── [email protected] /cdn-cgi/l/email-protection 
│ │ └── [email protected] /cdn-cgi/l/email-protection 
│ ├── [email protected] /cdn-cgi/l/email-protection 
│ ├── [email protected] /cdn-cgi/l/email-protection 
│ └── [email protected] /cdn-cgi/l/email-protection 
└─┬ [email protected] /cdn-cgi/l/email-protection 
  ├── [email protected] /cdn-cgi/l/email-protection 
  └── [email protected] /cdn-cgi/l/email-protection 

关于为什么这不起作用的任何想法?


我认为你的布局方式是错误的。我这样做:

我将布局设置为 false :

app.set('view options', {
    layout: false
});

在layout.jade 文件中:

doctype 5
html(lang="en")
    head
        title MySite #{title}
body
    block mainContent

在渲染的页面(假设:home.jade)中,其中包含一个变量(内容)

extends layout

block mainContent
    h1 This is home
    p= content

您可以拥有另一个基于(扩展)具有不同变量(用户)的相同布局(other.jade)的页面

extends layout

block mainContent
    h1 Oh look ! Another page
    p= user

并这样称呼它们:

app.get('/', function(req, res) {
    res.render('home', { 
        title : "Home",
        content: "Some Home page content"
    });
});

app.get('/anotherPage', function(req, res) {
    res.render('other', { 
        title : "Other page",
        user: "Here goes a user name"
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jade 模板布局无法与 Node.js 结合使用 的相关文章

随机推荐

  • 将查询转换为存储过程

    下面是一个包含临时表的大查询 我一直在试图找出将其转换为存储过程的语法 我似乎无法弄清楚 我应该能够使用变量选择日期范围 Report Start DT and Report End DT CREATE PROCEDURE gw ppp d
  • Selenium Headless Chrome 和语言设置

    我正在使用 python 中的 selenium 和 chrome 驱动程序 我可以像这样设置 chrome 浏览器的语言 options webdriver ChromeOptions options add experimental o
  • 多重继承:派生类仅从一个基类获取属性?

    我试图学习Python中多重继承的概念 考虑一个类Derv派生自两个类 Base1 and Base2 Derv仅继承第一个基类的成员 class Base1 def init self self x 10 class Base2 def
  • Angular 路由的奇怪行为

    我之前曾问过我奇怪的路由问题 我现在有一个解决方案 但仍然偶尔会有奇怪的行为 我的页面应该转到 登录 一旦成功 然后转到 主 这实际上现在有效 除了转到登录 gt 主页 gt 空白 gt 主页 最后的 闪烁 或刷新我不明白 这解释了最初的行
  • SQL - 抑制重复的*相邻*记录

    我需要运行一个 Select 语句 DB2 SQL 该语句不会根据某个字段提取相邻行重复项 具体来说 我想找出数据何时changes 这变得很困难 因为它可能会变回其原始值 也就是说 我有一个大致类似于下面的表格 按字母排序 然后按日期排序
  • 监控封闭图 Akka Stream

    如果我创建了一个RunningGraph在 Akka Stream 中 我怎么知道 从外部 当所有节点因完成而被取消时 当所有节点因错误而停止时 我认为没有办法对任意图执行此操作 但是如果您可以控制图 则只需将监视接收器附加到每个可能失败或
  • QSlider值改变信号

    我使用 QSlider v4 6 进行输入并向用户提供反馈 对于反馈 我将调用 setValue 方法 我试图找到一个仅当用户修改该值时才会触发的信号 当用户更改值以及我调用 setValue 时 将触发 valueChanged 信号 s
  • 什么是 android:sharedUserLabel 以及它在 android:sharedUserID 之上添加了哪些附加值?

    文档 http developer android com guide topics manifest manifest element html uid http developer android com guide topics ma
  • 替换 只替换第一个

    我使用以下代码允许 JQuery UI 工具提示函数中的换行符 function document tooltip linebreak tooltip content function callback callback this prop
  • 如何以低廉的成本确定列是否只包含 NULL 记录?

    我有一个大表 有 500 列和 100M 行 基于一个小样本 我相信只有大约 50 列包含任何值 其他 450 列仅包含 NULL 值 我想列出不包含数据的列 在我当前的硬件上 查询每一列大约需要 24 小时 select count 1
  • 配置“:app:api”包含在依赖项解析中后无法更改它的依赖项

    无法更改配置的依赖关系 应用程序 api 当它被包含在依赖解析中之后 我也遇到了同样的错误 谢谢 Dominik https stackoverflow com users 1653268 dominik kunicki用于链接到重复项is
  • 正则表达式匹配数字或特定字符串(即“全部”)

    这听起来很简单 但我的正则表达式知识有限 我需要一个表达式来匹配十进制数或字符串 all 就像在范围验证器中允许单词 all 代表最大范围一样 我认为这样的事情可能会起作用 d d any 但以上不适用于 任何 这是一个不使用正则表达式的解
  • .Net Framework 版本 C# 7.2 可用

    我尝试安装 net框架4 7 2 项目属性中目标框架仍然为空 我尝试运行的程序使用只读结构体 这是一部分C 7 2 你能指导我 Net Framework 版本有C 7 2 语言功能独立于 Net 版本 框架 核心 标准 您将需要使用能够理
  • OSX 状态菜单在 Swift 中不起作用

    我尝试使用 swift 将一个简单的状态菜单添加到状态栏 但它不会显示 与 Objective c 一起工作 AppDelegate h interface AppDelegate NSObject
  • 从苹果下载 iPhone 示例代码 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 iphone sdk 文档包含示例代码的链接 但您必须从网络上单独下载它们 有没有可以从苹果一次性下载的捆绑包 例如 阅读第一个 iPho
  • 当我更改配置设置时,Visual Studio 生成“Settings1.Designer.vb”

    有时 并非总是 当我在 我的项目 页面中编辑设置时 当我从那里添加一个设置或编辑一个值时 会收到错误消息 Settings is ambiguous between declaration in Modules
  • 跳进C语言的一个块

    如果我像这个例子一样跳进一个块 跳过 声明 include
  • 找到 2 个 java.sql.Timestamps 之间的小时或分钟差异?

    我存储一个java sql Timestamp in a PostgreSQL数据库为时间戳数据类型 我想找出数据库中存储的数据类型与当前数据类型之间的差异 以分钟或小时为单位 时间戳 这样做的最佳方法是什么 是否有内置方法 或者我必须将其
  • 文本背景颜色溢出

    我将背景颜色应用于国家 地区列表中的链接 总体来说效果很好 然而 对于名称较长的国家来说 它的效果不太好 我试图让黄色溢出一切并清楚地显示国家的全名 HTML div class flagList div class flagColumn
  • Jade 模板布局无法与 Node.js 结合使用

    我正在尝试在 Node js 中创建一个使用 Jade 模板和布局的简单服务器 由于某种原因 它只会加载模板而不加载布局 这是我所得到的 main js var express require express var app express