我正在努力了解Express和Jade的工作方式。
首先,我正在使用layout.jade作为模板文件(标题,正文,页脚)并使用不同的文件在正文中显示信息(参见下面的示例)吗?
代码工作正常,但我不确定这是否是在Express中执行操作的正确方法。如果我继续使用这个结构,我如何从内部链接到其他文件(例如.About.jade),例如index.jade,以显示该文件而不是index.jade? p>
提前致谢!
layout.jade:
!!! 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(type='text/javascript', src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js')
script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js')
script(type='text/javascript', src='/javascripts/external.js')
// Header
header#header
// Navigation
nav#nav
// Navigation code (ul, li etc)...
// Sidebar
aside#sidebar
// Sidebar code...
// Body
body!= body
index.jade:
!!! 5
html
head
title= title
section#wrapper
img.imageStyle(src = '/images/test1.png')
// And so on...
About.jade:
// You get it...
答案 0 :(得分:14)
我认为您正在寻找的是快递中的视图渲染路线: http://expressjs.com/en/guide/using-template-engines.html
所以你可以设置这样的东西:
app.get('/', function(req, res){
res.render('index.jade', { title: 'index' });
});
app.get('/about', function(req, res){
res.render('about.jade', { title: 'about' });
});
要从一个链接到另一个,一旦配置了正确的路线,您就可以执行以下操作:
a(href='/') index
a(href='/about') about
更新此外,您不需要在索引中重复此操作。
!!! 5
html
head
title= title
答案 1 :(得分:4)
通过这种方式,您可以将header.jade,footer.jade包含在about.jade文件中。这是来自玉的包含文档: https://github.com/visionmedia/jade#a13
这样你只需添加例如应该在每个页面上的脚本或样式表标签来更改header.jade文件。