如何将渲染的Jade页面作为Node Express中的静态HTML页面提供服务?

时间:2013-12-03 01:55:47

标签: node.js express pug

通常你会在这样的路线中渲染一个Jade页面:

app.get('/page', function(req, res, next){
    res.render('page.jade');
});

但我想为所有Jade页面提供服务(自动呈现),就像人们如何提供静态HTML

一样
app.use(express.static('public'))

有没有办法为Jade做类似的事情?

2 个答案:

答案 0 :(得分:2)

“static”表示将现有文件直接从磁盘发送到浏览器。玉可以这种方式提供,但这是非常不寻常的。通常你想在服务器上将jade渲染为HTML,根据定义它不是“静态的”,它是动态的。你这样做:

app.get('/home', function (req, res) {
    res.render('home'); // will render home.jade and send the HTML
});

如果你想在浏览器中为jade本身提供渲染,只需在将其加载到浏览器中时直接在url中引用它,如:

$.get('/index.jade', function (jade) {
    //...
});

答案 1 :(得分:2)

https://github.com/runk/connect-jade-static

  

用法

     

假设项目的以下结构:

/views
  /partials
    /file.jade
     

让我们从/views/partials web accessable:

制作玉文件
var jadeStatic = require('connect-jade-static');

app = express();
app.configure(function() {
  app.use(jadeStatic({
    baseDir: path.join(__dirname, '/views/partials'),
    baseUrl: '/partials',
    jade: { pretty: true }
  }));
});
     

现在,如果您启动Web服务器并在浏览器中请求/views/partials/file.html   应该能够看到编译好的玉石模板。