可以使用Express.js动态呈现css吗?

问题描述:

我想呈现每个请求在运行中生成的css。可以使用Express.js动态呈现css吗?

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

/clients/:clientId/style.css 

当我得到一个匹配的要求,我想从我的存储库中查找客户端,并拔出他们的文本颜色。然后我想将这种颜色推送到css响应中。

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

任何想法,替代策略?

干杯, 戈登

如果你的避风港没有意识到这一点,我认为你有,你可以使用​​和define(name, variable)在手写笔到provide dynamic content CSS内。

假设您使用Express并调用命令./node_modules/express/bin/express -t jade -c styluscreate 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,根据您的具体需求。

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

+0

不,我没有意识到!干杯加藤。手写笔定义方法是要走的路。任何人都知道它是否可以在LESS中完成? –

如果它的CSS,你可以将它添加到页面的底部,浏览器将它捡起来呈现网页

jQuery include css

+0

但如何?例如,翡翠不允许插入样式标签(或脚本标签,btw)内的数据。 有没有不同的渲染引擎呢? 干杯,戈登 –