2

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

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

/clients/:clientId/style.css

当我收到匹配请求时,我想从我的存储库中查找客户端并提取他们的文本颜色。然后我想将此颜色推送到 css 响应中。

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

任何想法,替代策略?

干杯,戈登

4

2 回答 2

1

如果您还没有意识到这一点,我想您已经意识到了,您可以在 Stylus 中使用define(name, function)和在CSS中提供动态内容。define(name, variable)

假设您使用 Express 并调用命令./node_modules/express/bin/express -t jade -c stylus创建骨架站点,它应该负责模板引擎——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
  })

看起来这个 SO 帖子可能有替代策略,具体取决于您的具体需求。

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

于 2012-02-01T17:33:07.227 回答
0

如果它是一个 CSS,你可以将它添加到页面底部,浏览器会选择它并呈现页面

jQuery 包含 css

于 2012-01-26T07:31:28.953 回答