express layout模板视图
express框架使用了layout.html模板(ejs引擎), 例如在进行网站首页展示时采用
res.render(‘index’,{ layout:’layout.html’, title:’首页’ });
在渲染用户中心时采用
res.render(‘user’,{ layout:’layout.html’, title:’个人中心’ });
layout.html内容结构如下
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit"> <title><%= title%></title> <link href="/public/stylesheets/index.css" rel="stylesheet"></head> <body> <%- body %>
现在问题是,每个页面都使用layout.html模板,但不同的页面加载的css和js各不相同; index加载了index.css, index.js; 在加载首页时,layout引用了index.css 当加载user页面时user.css如何引入到视图中?或者其他方式解决? nodeclub代码layout文件加载了所有静态文件,不可能每个页面都会用到吧? 还请社区前辈帮助解答,谢谢!
6 回复
@i5ting 感谢你的回答,还是有点模糊;layout文件只有1个,是不是在渲染不同的视图时候,还要判断是什么视图文件,然后再去引用对应的:include a.header.jade ? 类似 在layout内部使用 if 当前视图为user include user.header.ejs if 当前视图为index include index.header.ejs