#javascript #minify #scriptresource.axd
#javascript #минимизировать #scriptresource.axd
Вопрос:
Я использую библиотеку MbCompression, и я хочу знать — уменьшает ли MbCompression ScriptResource.axd? И есть ли какие-либо инструменты, которые могут минимизировать ScriptResource.axd во время выполнения с минимальными изменениями в web.config?
Ответ №1:
Я не знаком с 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-адрес не имеет заголовка no-cache или no-store cache-control.
- URL-адрес не имеет заголовка max-age или expires менее недели.
Я слышал сообщения людей, жалующихся на то, что webresource.axd или scriptresource.axd отправляются в браузер без установленного кэша. Возможно, это не проблема для вас, но если вы видите, что это происходит, и отсутствие кэширования не является преднамеренным, вы можете добавить это в свой web.config:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="180.00:00:00" cacheControlCustom="public" />
</staticContent>
Кроме того, он может автоматически создавать спрайты любых фоновых изображений, оптимизировать их сжатие в формате PNG и использует лучшие практики при обслуживании заголовков кэша для своих кэшированных css / javascript / спрайтов.
В настоящее время эта платформа используется в Microsoft галереями MSDN и Technet.
Вы можете либо установить через Nuget (предлагается), либо загрузить с http://www.requestreduce.com .
Комментарии:
1. Это может быть очень отличным инструментом! Но у меня есть некоторые проблемы. Я установил ваш инструмент вручную (поместите ссылку и добавьте изменения в конфигурацию). Но нет папки requestreduc Content. Есть ли что-нибудь еще, что я должен сделать, чтобы установить ваш инструмент вручную?
2. Может быть, учетная запись, под которой работает ваш сайт, не имеет доступа на запись к вашему веб-корню? Если это не так, пожалуйста, сообщите о проблеме на моей странице github github.com/mwrock/RequestReduce/issues и я был бы рад поработать с вами, чтобы запустить его в работу. Также смотрите Эту вики-страницу по устранению неполадок: github.com/mwrock/RequestReduce/wiki /…
3. Я уже проверил все разрешения, но я все еще не вижу папку. Мой сайт работает под управлением IIS6. Может быть, я пропустил некоторые настройки конфигурации, потому что не установлен через Nuget?
4. @MattWrock Работает ли это на IIS6 с asp.net 3.5 сайт, использующий набор инструментов Ajaxcontrol? Пожалуйста, дайте мне знать.
5. Он работает на IIS6 .net3.5. Возникают некоторые проблемы, если javascript ссылается на другие скрипты, используя относительные URL-адреса, поскольку скрипты перемещены. Конечно, стоит попробовать.