设置Jade布局的CSS路径

时间:2013-08-13 10:41:03

标签: node.js express pug

我想在我的快递应用程序中设置我的CSS路径,以便在我的jade布局中使用这个。但是,我不知道该怎么做,我尝试使用“app.set('cssPath',__ dirname +'/ public / admin / css /')”但它不起作用,因为我不能使用“app”。 get()“在我的外部控制器中。

我的布局_layout.jade:

!!! 5
html(lang='fr')
  head
    meta(charset='UTF-8')
    link(href='admin/css/screen.css', media='screen, projection', rel='stylesheet', type='text/css')
  body
    .container
      h1 Wellcome to Forest Administrator
      .space20
      block content
      .clear.space20
  script(type='text/javascript', src='admin/js/jquery.js')

我的页面edit.jade:

extends ../_layout

block content
  .block.half.first
    h2 Add a post

我想使用类似的东西:

link(href='+myCssPath+', media='screen, projection', rel='stylesheet', type='text/css')

1 个答案:

答案 0 :(得分:1)

不确定我是否得到你想做的但你可以使用

res.locals.cssPath = 'string with the path';

cssPath将在您的模板中提供。

除此之外,你不需要__dirname +'/ public /。部分因为当为浏览器/ public /呈现页面时将是/

[edit]如果你想在你所有路线中都有这个变量,但只宣告一次,你可以创建一个像

这样的小型中间件
var express = require('express');
var app = express();
var app.configure(function(){

    app.use(express.bodyParser());
    app.use(express.methodOverride());
    // .. and your other tipical configuration

    //this small middleware for variables that must available in all paths
     app.use(function(req, res, next) {
        res.locals.cssPath = 'path to the css directory';
        next();
    });
});
//From here your typical route declarations  
app.get('/', function(req, res) { res.render('someView'); });