У меня разные файлы css в зависимости от браузера и устройства. Одним из подходов к объединению может быть регистрация каждой комбинации «phone.ie», «desktop.ie», «phone.chrome» и т. д. и наличие метода Render string.format для правильного пакета («~/content/{0} .{1}", устройство, браузер). Это сработает, но требуется гораздо больше обслуживания, чем необходимо. Дополнительные файлы css означают регистрацию большего количества пакетов.
Что было бы действительно здорово, если бы я мог зарегистрировать один пакет:
bundles.Add(new StyleBundle("~/content/css")
.Include("~/content/css/styles.{device}.{browser}.css"));
и рендерить просто
@Styles.Render("~/content/css")
Где {device} и {browser} — это заполнитель для переменной времени выполнения. Как я мог это сделать? Существует заполнитель {версия}, используемый для пакетов jQuery, но он не кажется очень расширяемым для пользовательских значений.
Было бы неплохо, возможно, накормить рендер словарем
@Styles.Render("~/content/css", new { device = runtimeDevice, browser = runtimeBrowser })