我可以用Express.js动态渲染css吗?

时间:2012-01-26 07:27:33

标签: css less express stylus

我想渲染每次请求时动态生成的css。

例如,在Express.js中我有一条路线:

/clients/:clientId/style.css

当我收到匹配请求时,我想从我的存储库中查找客户端并提取其文本颜色。然后我想把这种颜色推出到css响应中。

是否有可以渲染文本文件的模板引擎,比如style.less,我可以使用less / stylus进行解析?

任何想法,替代策略?

干杯, 戈登

2 个答案:

答案 0 :(得分:1)

如果你还没有意识到这一点,我认为你有,你可以在手写笔中使用define(name, function)define(name, variable)到CSS中的provide dynamic content

假设您使用Express并将命令./node_modules/express/bin/express -t jade -c stylus调用到create a skeleton site,它应该处理模板引擎 - Stylus将处理CSS和Jade(或您选择的view_engine)处理休息;我没有看到view_engine在这里是如何重要的(你能解释一下你对它的评论是否阻止在样式标签中插入数据?)

可能是您将样式标记直接嵌入到html页面中?尝试将其提取到自己的模板文件中,如果是这种情况,让Stylus拥有它。

如果您想手动设置,app.configure()

中需要这样的内容
  app.use stylus.middleware({
    force: true
    src: "#{__dirname}/views"
    dest: "#{__dirname}/public/css"
    compress: true
  })

看起来像this SO post may have an alternative strategy,具体取决于您的具体需求。

希望这给你一些想法,如果不是一个完整的解决方案:)

答案 1 :(得分:0)

如果它是一个css,你可以将它添加到页面底部,浏览器将把它拿起并呈现页面

jQuery include css