ScriptResource.axd с MbCompression - PullRequest
       36

ScriptResource.axd с MbCompression

2 голосов
/ 03 ноября 2011

Я использую библиотеку MbCompression и хочу знать - минимизирует ли MbCompression ScriptResource.axd? И есть ли инструменты, которые могут минимизировать ScriptResource.axd во время выполнения с минимальными изменениями в web.config?

1 Ответ

3 голосов
/ 03 ноября 2011

Я не знаком с 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-адрес скрипта, минимизирует его и объединит с содержимым тега смежного скрипта, если верно следующее:

  1. Тип MIME URL-адреса является допустимым типом MIME JavaScript. Поэтому ScriptResources и WebResources должны быть перехвачены.
  2. У URL нет заголовка управления кэшированием без кэша или без хранилища.
  3. 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.

...