Могу ли я рендерить css динамически с Express.js? - PullRequest
2 голосов
/ 26 января 2012

Я хочу отображать CSS, который генерируется на лету при каждом запросе.

Например, в Express.js у меня есть маршрут:

/clients/:clientId/style.css

Когда я получаю соответствиезапрос, я хочу найти клиента из моего хранилища и вытащить их цвет текста.Затем я хочу передать этот цвет в ответ CSS.

Есть ли шаблонизатор, который может визуализировать текстовый файл, скажем style.less, который я могу проанализировать с помощью less / stylus?

Есть идеи, альтернативные стратегии?

Приветствия, Гордон

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Если вы еще не осознали этого, я думаю, вы можете использовать define(name, function) и define(name, variable) в Stylus для для предоставления динамического содержимого в CSS.

Если вы используете Express и вызываете команду ./node_modules/express/bin/express -t jade -c stylus to для создания сайта-скелета , он должен позаботиться о движках шаблонов - 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 может иметь альтернативную стратегию , в зависимости от ваших конкретных потребностей.

Надеюсь, это даст вам некоторые идеи, если не полное решение:)

0 голосов
/ 26 января 2012

если это css, вы можете просто добавить его внизу страницы, браузер подберет его и отобразит страницу

jQuery включает css

...