Возврат сгенерированного CSS из действия контроллера MVC5 или Web API 2
В нашем мультитенантном приложении нам необходимо настроить стили, используемые для каждого арендатора.
В настоящее время мы планируем сделать это, используя LESS и переменные следующим образомна клиенте:
Загрузите зависимые файлы LESS с сервераВызовите веб-сервис для получения объекта конфигурацииФорма строки действительного LESS с определенными переменнымииспользованиеless.js
компилятор для компиляции LESS на основе этих переменных и фиксированных файлов LESS с шага 1Этот подход имеет ряд недостатков:
Клиенты могут вести себя плохоНекоторые браузеры имеют проблемы сless.js
Компиляция требует времениВместо этого мы хотели бы позаботиться об этой работе на сервере, так что, грубо говоря, это происходит на сервере:
Клиент просит загрузить одну большую скомпилированную таблицу стилей -GET content/styles/{tenantName}.css
С помощьюtenantName
сервер выбирает конфигурациюИспользуя шаблон и соответствующие переменные (возможно,string.Format
или что то более изощренное)Сервер компилирует LESS в строку CSSСервер возвращает строку CSS с соответствующейContent-Type
Вот мои вопросы:
Это необычный или нежелательный способ достижения указанного результата?Если не считать настройки архитектуры для серверного JavaScript, как я могу скомпилировать LESS в CSS?Что я должен сделать в действии контроллера или в конфигурации маршрута, чтобы заставить клиента думать, что сервер возвращает обычный старый файл CSS с полным контролем кэша, не измененный?