我可以用Express动态渲染css吗?js?
题
我想呈现在每个请求时动态生成的css。
例如,在Express中。js我有一条路线:
/clients/:clientId/style.css
当我收到匹配的请求时,我想从我的存储库中查找客户端并拉出它们的文本颜色。然后我想把这个颜色推到css响应中。
是否有模板引擎可以呈现文本文件,比如样式。少,我可以用less/stylus解析?
任何想法,替代策略?
干杯!, 戈登
解决方案
如果你还没有意识到这一点,我想你有,你可以使用 define(name, function)
和 define(name, variable)
在手写笔到 提供动态内容 在CSS内。
假设您使用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 post可能有一个替代策略, ,取决于您的特定需求。
希望这给你一些想法,如果不是一个完整的解决方案:)
其他提示
如果它是一个CSS,你可以将其添加到页面的底部,浏览器将拾取并呈现页面
不隶属于 StackOverflow