Node.js 从其他视图文件夹中包括pug mixin
我在express应用程序中设置了多个视图路径:Node.js 从其他视图文件夹中包括pug mixin,node.js,express,include,pug,mixins,Node.js,Express,Include,Pug,Mixins,我在express应用程序中设置了多个视图路径: express.set('views',['/path1', '/path2', '/path3']); 渲染视图时,我希望在path1中包含pug文件表单path2 # /path2/index.pug include path1/mixin.pug 我找不到此问题的解决方案。我没有使用express.set视图 在你的哈巴狗档案里做这个 包括../path1/mixin.pug (或没有。帕格也可以工作)例如包括../path1/mix
express.set('views',['/path1', '/path2', '/path3']);
渲染视图时,我希望在path1
中包含pug文件表单path2
# /path2/index.pug
include path1/mixin.pug
我找不到此问题的解决方案。我没有使用express.set视图 在你的哈巴狗档案里做这个 包括../path1/mixin.pug (或没有。帕格也可以工作)例如包括../path1/mixin 编辑: 对于那些投了反对票的人,你对乔恩·斯诺一无所知 我的设置:
文件:根项目文件夹中的index.js[注意没有app.set('views',path.join('view'))] 文件夹:视图(根文件夹内) 文件夹:零件(内部视图文件夹,如根/视图/零件) 文件:mixin.pug(内部视图文件夹,例如root/view/part/mixin.pug
mixin pet(name)
li.pet= name
文件夹:模板(内部视图文件夹,如root/view/template)
文件:main.pug(在root/view/template/main.pug中)
文件夹:主页(根文件夹内,如root/home)
文件:route.js(在主文件夹中,例如root/home/route.js)
文件:index.pug(在主文件夹中,例如root/home/index.pug)
如您所见,这是localhost:3000的输出
绝对证明它可以在没有express.set视图的情况下工作,并且可以使用include../path1/mixin.pug
工作原理:
- root index.js文件路由到文件夹home到file route.js,拉取文件index.pug
- index.pug提取模板文件main.pug。然后提取mixin
mixin pet(name)
li.pet= name
doctype html
html
head
body
h1 Hello template/main.pug
block content
const express = require('express')
const app = module.exports = express()
app.get("/",(req,res)=>{
res.render('../home/index')
})
extends ../view/template/main
block content
h1 Helllllo from home/index.pug
include ../view/part/mixin
+pet('you')
+pet('know')
+pet('nothing')
+pet('jon')
+pet('snow')