新的和学习的把手我想学习如何创建模板,根据我的研究,这被称为partial,并且我想创建一个不包含文件的把手。在我的Node app.js 中,包括hbs
和代码:
// Define paths for Express config
const publicDir = path.join(__dirname, '../public')
const viewsPath = path.join(__dirname, '../templates/views')
const partialsPath = path.join(__dirname, '../templates/partials')
// Setup hbs engine and views location
app.set('view engine', 'hbs')
app.set('views', viewsPath)
hbs.registerPartials(partialsPath)
在局部视图中,我创建一个名为 head.hbs 的文件,并包括:
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
<link rel="icon" href="/img/favicon.png">
<link rel="stylesheet" href="/css/styles.css">
</head>
<body>
但是我很好奇是否有一种方法可以基于文件向部分文档添加条件吗?例如,如果我有一个 404.css ,我希望它仅在404页上呈现,但是当我研究条件时,我发现了built-in helpers和代码:
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
<link rel="icon" href="/img/favicon.png">
{{#if 404}}
<link rel="stylesheet" href="/css/404.css">
{{else}}
<link rel="stylesheet" href="/css/styles.css">
{{/if}}
</head>
看来我可以添加一个变量,如:
404: true
基于“ How can I conditionally add a Handlebars partial to an Assemble layout?”,我认为它将被编码为:
app.get('*', (req, res) => {
res.status(404).render('404', {
title: '404',
404: true
})
})
,但所有页面均呈现 404.css 。在部分文件中执行文件排除的正确方法是什么?