CNode

express layout模板视图

问答
Vvendetta0114发布于11 年前最后回复11 年前6 回复7444 浏览0 收藏

express框架使用了layout.html模板(ejs引擎), 例如在进行网站首页展示时采用

res.render('index',{ layout:'layout.html', title:'首页' });

在渲染用户中心时采用

res.render('user',{ layout:'layout.html', title:'个人中心' });

layout.html内容结构如下

现在问题是,每个页面都使用layout.html模板,但不同的页面加载的css和js各不相同; index加载了index.css, index.js; 在加载首页时,layout引用了index.css 当加载user页面时user.css如何引入到视图中?或者其他方式解决? nodeclub代码layout文件加载了所有静态文件,不可能每个页面都会用到吧? 还请社区前辈帮助解答,谢谢!

查看回复

回复 (6)

I
i5ting#1·11 年前

创建include目录,把公用的放到一起,然后在布局里include a.header.jade or include a.js.header.jade 类似变通

V
vendetta0114#2·11 年前
引用 i5ting创建include目录,把公用的放到一起,然后在布局里include a.header.jade or include a.js.header.jade 类似变通

@i5ting 感谢你的回答,还是有点模糊;layout文件只有1个,是不是在渲染不同的视图时候,还要判断是什么视图文件,然后再去引用对应的:include a.header.jade ? 类似 在layout内部使用 if 当前视图为user include user.header.ejs if 当前视图为index include index.header.ejs

J
jerrywu55#4·11 年前

我比较喜欢用 swig

V
vendetta0114#5·11 年前
引用 jerrywu55我比较喜欢用 swig

@jerrywu55 感谢你的推荐,简单看了一下swig,模板继承挺好,另外还有其他特性,感谢

参与回复
登录后即可参与回复。登录