Я не знаком с MbCompression, но взгляну на RequestReduce . Это мой проект OSS, и я считаю, что он делает именно то, что вы хотите: минимизирует / комбинирует css и javascript во время выполнения. В отличие от других платформ, RequestReduce не требует никаких изменений кода, никакой перестановки скриптов и CSS и ОЧЕНЬ маленьких настроек. Все необходимые настройки для добавления модуля. Вот все, что вам действительно нужно в вашей конфигурации:
<system.web>
<httpModules>
<add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce"/>
</httpModules>
</system.web>
<system.webServer>
<modules>
<validation validateIntegratedModeConfiguration="false"/>
<add name="RequestReduce" type="RequestReduce.Module.RequestReduceModule, RequestReduce"/>
</modules>
</system.webServer>
Вот и все, без лишнего кода. Есть множество вариантов, к которым у вас есть доступ, чтобы включать и выключать различные функции, а также настраивать синхронизацию кэша на нескольких серверах или включать хост CDN в ваши URL. Но для нестандартного решения необходимо только вышеперечисленное.
Он будет искать любой URL-адрес скрипта, минимизирует его и объединит с содержимым тега смежного скрипта, если верно следующее:
- Тип MIME URL-адреса является допустимым типом MIME JavaScript. Поэтому ScriptResources и WebResources должны быть перехвачены.
- У URL нет заголовка управления кэшированием без кэша или без хранилища.
- URL не имеет максимального возраста или срок действия заголовка меньше недели.
Я слышал, как люди жаловались на то, что webresource.axd или scriptresource.axd отправляются в браузер без установленного кэша. Это может не быть проблемой для вас, но если вы видите, что это происходит, и отсутствие кэширования не является преднамеренным, вы можете добавить это в ваш web.config:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="180.00:00:00" cacheControlCustom="public" />
</staticContent>
Кроме того, он может автоматически спрайтовать любые фоновые изображения, оптимизировать сжатие PNG и использовать лучшие практики при обслуживании заголовков кэша для своих кэшированных css / javascript / sprites.
Эта платформа в настоящее время используется в Microsoft галереями MSDN и Technet.
Вы можете установить через Nuget (рекомендуется) или загрузить с http://www.requestreduce.com.