我在我的快速应用程序中设置的多个视图的路径:
express.set('views',['/path1', '/path2', '/path3']);
渲染视图时,我想在path2
中包含哈巴狗文件格式path1
。
# /path2/index.pug
include path1/mixin.pug
我不能找到这个问题的解决方案。
答案 0 :(得分:-1)
我没有使用express.set视图。
只需在您的哈巴狗文件中这样做
包括../path1/mixin.pug (或者没有.pug也可以工作),例如include ../ path1 / mixin
编辑:
对于那些对此不赞成的人,你不知道琼恩·雪诺。
我的设置:
文件:根项目文件夹中的index.js [注意,没有app.set('views',path.join(__ dirname,'view'))]
const express = require('express')
const app = express()
const PORT = process.env.PORT || 3000
app.use(express.static('public'))
app.set('view engine', 'pug')
// routing
app.use('/', require('./home/route'))
app.listen(PORT, console.log(`Server started on port ${PORT}`))
文件夹:视图(在根文件夹内)
文件夹:部分(内部视图文件夹,例如root / view / part)
文件:mixin.pug(在内部视图文件夹中,例如root / view / part / mixin.pug
mixin pet(name)
li.pet= name
文件夹:模板(内部视图文件夹,例如root / view / template)
文件:main.pug(在root / view / template / main.pug中)
doctype html
html
head
body
h1 Hello template/main.pug
block content
文件夹:home(在根文件夹内,例如root / home)
文件:route.js(位于主文件夹内,例如root / home / route.js)
const express = require('express')
const app = module.exports = express()
app.get("/",(req,res)=>{
res.render('../home/index')
})
文件:index.pug(位于主文件夹内,例如root / home / index.pug)
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')
如您所见,这是输出localhost:3000
绝对能在没有express.set视图的情况下使用,并且带有include ../path1/mixin.pug
工作原理:
“你什么都不知道,琼恩·雪诺”