NodeJs:根据路由参数加载不同的CSS

时间:2016-02-27 21:21:40

标签: node.js pug

我看了一下,但我甚至不确定我想要的是什么。

app.js

...
var routes = require('./routes/index');
...
app.use('/', routes);
...

index.js

/* GET home page. */
router.get('/', function(req, res, next) {
    res.render('index', { 
        title: 'Test',
        headersheet: 'header',
        mainsheet: 'devTest',
        navbar: 'nav_bar',
        mainscript: 'devTest',
    });
});

然后,我的layout.jade

doctype html
html
    head
        title= title
        link(rel='stylesheet', href='/stylesheets/global.css')
        link(rel='stylesheet', href='/stylesheets/#{headersheet}.css')
        link(rel='stylesheet', href='/stylesheets/#{mainsheet}.css')
        link(rel='stylesheet', href='/stylesheets/#{navbar}.css')
    body
        block content
        script(src='http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js')
        script(src='javascripts/#{mainscript}.js')

index.jade

extends layout

block content   
    include nav_bar.jade

    #page_header_fr

基本上我想要的是#{mainsheet}.css成为devTest.css

但是当我加载页面时,我在控制台中看到的是一条消息,告诉我无法找到资源undefined.css。现在,我从中理解的是,参数(标题表,主页,导航栏,...)没有正确传输。但是,页面的标题显示正常。

甚至可以这样做吗?

1 个答案:

答案 0 :(得分:0)

尝试此操作(在主卷,导航栏和主文中添加"")

index.js

router.get('/', function(req, res, next) {
    res.render('index', { 
        title: 'Test',
        headersheet: 'header',
        "mainsheet": 'devTest',
        "navbar": 'nav_bar',
        "mainscript": 'devTest',
    });
});

这应该有效。