2014-03-06 18 views
2

尽管看起来相当有用,但我无法找到答案。自动呈现玉文件,就好像它是一个html文件?

我想主办一个使用node.js来提供编译的jade文件而不是html文件的站点。目前,我使用:

app.get('/', function(req, res) { 
    app.use(express.static(__dirname)); 
}); 

我怎样才能得到它找到page.jadedomain.com/page当有人类型?此外,我可以在玉文件中编写链接(因此a(href='page') link将链接到上述页面)?

+1

你想要玉做的是什么玉制成。您需要将您的视图引擎设置为jade,然后在您的jade文件上执行res.render()。 –

+0

我将其设置为'app.set('views',__dirname +'/ views'); app.set('view engine','jade'); ('/',function(req,res){ res.render(__ dirname +'/'); app.use(express.static(__ dirname)); });'有一个文件叫做'views/page1.jade',但是,在'domain:port/page1'上我得到'不能GET/page1' – JVE999

+2

将路径设置为'app.get('/:pageName')'... then'res。 render(req.params.pageName +'。jade')'... req.params将包含属性名称中的最后一部分pageName –

回答

0

Express对于它所谓的“视图引擎”有许多可能的选项。为了让它处理jade文件并将它们作为html服务,您必须对其进行配置才能这样做。

要做到这一点,最简单的方法之一就是简单地使用express命令创建项目mentioned in their guide。默认视图引擎是玉器和下面的命令集手写笔的CSS处理器:

express --css stylus myapp 

相反,如果您要配置自己的服务器,你需要配置的意见引擎:

app.configure(function(){ 

    app.set('views', path.join(staticDir,'views')); 
    app.set('view engine', 'jade'); 
    ... the rest of your setup ... 
} 
1

套装你作为

app.get('/:pageName') 
// more code 
// then 
res.render(req.params.pageName+'.jade') 

req.params路径将包含在属性名的最后部分pageName

相关问题