Обслуживание динамических переменных в меньшем файле во время выполнения

У нас есть большое приложение ASP.NET MVC с большим количеством CSS, ~105 различных файлов. Эти файлы разделены по компонентам, что упрощает управление ими. Во время выполнения мы минимизируем / объединяем их, используя обработчик.

Кроме того, наше приложение использует настройки скина; Администратор может настроить шрифты и цвета для сайта. Эти настройки скинов внедряются в файлы CSS с помощью NVelocity, который, хотя и устарел, довольно производительный.

Я хотел бы перевести CSS на использование less, что позволит увеличить повторное использование кода и чистоту в файлах CSS. Я борюсь за лучший вариант сделать это. Мой нынешний ход мыслей таков:

  1. Администратор делает модификации кожи и сохраняет
  2. При сохранении приложение генерирует файл skin.less на диске, который является основным файлом, содержащим все переменные
  3. Последующие CSS-файлы, которые требуют меньше переменных, делают @import для skin.less
  4. меньше файлов обрабатывается и минимизируется / объединяется в обработчике и передается клиенту.

Мой вопрос: кажется ли это наилучшим подходом к обслуживанию динамических переменных в меньшем количестве файлов? Является ли создание файла skin.less на диске моей единственной возможностью, или оператор @import может ссылаться на сам обработчик, поэтому нет необходимости создавать файл на диске?

1 ответ

Я думаю, что вы можете сделать это таким образом. Не совсем то, о чем вы говорите, но я сделал немного концепции для использования LESS со скинами здесь:

https://github.com/aguyawry/less_tests

Я думаю, что одно отличие состоит в том, что в этом POC загруженный в разметке файл под маркой меньше, и он импортирует базовые стили приложения, а затем задает новые переменные, которые переопределяют начальные значения в базе.

Этот POC полностью на стороне клиента, но на практике мы делаем и на стороне сервера. На самом деле мы движемся к созданию пользовательского интерфейса, чтобы клиенты сами выбирали свои стили (bg color, border color....) и затем выводили из него таблицу стилей обложки в систему.

Я не думаю, что комментарии TheZ применимы, так как вы делаете все на стороне сервера. Блокировка может произойти только в том случае, если вы работаете на стороне клиента.

Другие вопросы по тегам