我想在我的快递应用程序中设置我的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')
答案 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'); });