如何为不同的路由获取不同的css文件(express,node.js)

时间:2014-02-10 14:34:20

标签: node.js express

我有这样的目录内容

app\
  app.js
html-views\
  corporate\
    css\main.css            //css.corp
    index.html
  ecommerce\
    css\main.css            //css.ecom
    index.html

我正在尝试配置两条路线:

var sys = require( "sys" );
var express = require("express");
var cons = require("consolidate");
var app = express();
app.engine("html",cons.swig);
app.set("view engine","html");
app.set("views","../html-views/");

//HERE I HAVE TO CONFIGURE CSS

app.get("/corporate",function(request,response){
response.render("corporate/index");
});
app.get("/ecommerce",function(request,response){
response.render("ecommerce/index");
});
app.listen(8080);

我想配置根据路线选择“main.css”,但我不能

如果我写:

app.use("/css",express.static("../html-views/corporate/css"));
app.use("/css",express.static("../html-views/ecommerce/css"));

然后一个css将覆盖另一个。

如果我写:

app.get("/corporate",function(request,response){
    app.use("/css",express.static("../html-views/corporate/css"));
    response.render("corporate/index");
});

然后他们只互相覆盖一次。

我该怎么写?谢谢你的支持。

2 个答案:

答案 0 :(得分:2)

我尝试解决以下相同的问题:

在ecommerce.html中,我为此模板添加了css文件,如下所示:

<link rel="stylesheet" href="./stylesheets/ecommerce.css">

因此,通过这种方式,不同的路由包含特定模板的不同css。

希望你能帮助你。

干杯

答案 1 :(得分:0)

你有没有理由不使用模板引擎?具有layout选项的把手可以轻松解决此问题。

我在这里找到答案https://stackoverflow.com/a/8790999/1822805