К основному контенту

Оптимизация контента. Сжатие и объединение файлов css и js с помощью библиотеки Combres. Часть II.

Сегодня в продолжение темы про оптимизацию пишу про библиотеку Combres.

Итак, Combres - это библиотека для объединения файлов стилей и скриптов, и сжатия итогового файла.

Подключается эта библиотека через менеджер NuGet:




После добавления библиотеки в файле web.config появятся необходимые ссылки на библиотеку. А в папке  App_Data появится файл combres.xml 


В этом файле и происходят все необходимые настройки. Ниже приведу пример файла:

<?xml version="1.0" encoding="utf-8" ?>
<combres xmlns='urn:combres'>
    <filters>
        <filter type="Combres.Filters.FixUrlsInCssFilter, Combres" />
    </filters>
    <resourceSets url="~/combres.axd"
                  defaultDuration="30"
                  defaultVersion="auto"
                  defaultDebugEnabled="false"
                  defaultIgnorePipelineWhenDebug="true"
                  localChangeMonitorInterval="30"
                  remoteChangeMonitorInterval="60"
                >
        <resourceSet name="siteCss" type="css">
            <resource path="~/content/styles/reset.css" />
            <resource path="~/content/styles/main.css" />
            <resource path="~/content/styles/header.css" />
            <resource path="~/content/styles/footer.css" />
        </resourceSet>
        <resourceSet name="siteJs" type="js">
            <resource path="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" mode="dynamic" />
            <resource path="~/content/scripts/scripts.js" />
        </resourceSet>
    </resourceSets>
</combres>

Объединение происходит в блоке <resourceSet/> где построчно перечисляются файлы для объединения. Атрибут name позволяет в дальнейшем обращаться к объединенному файлу на html странице. Объединять можно как статичные файлы на сервере, так и ссылки на библиотеки. Например, библиотеку jquery можно подключить используя Google Ajax API CDN. Для этого в атрибутах нужно указать mode="dynamic".


Остается вопрос как подключать эти блоки на html странице. Очень просто!
Есть несколько вариантов, но мне больше нравится этот(код приведен для MVC проекта с использование разметки Razor):
  • Для css файлов: <link href="@Combres.WebExtensions.CombresUrl("siteCss")" rel="stylesheet" type="text/css" />
    
    
  • Для js файлов: <script src="@Combres.WebExtensions.CombresUrl("siteJs")" type="text/javascript"></script>   
Когда мы откроем страницу в браузере и посмотрим содержимое, то увидим, что ссылка на итоговый файл выглядит следующим образом: yoursite.com/combres.axd/Main_Css/1405185587/(для файла стилей)


Цифры в ссылке означают временную метку файла. Если содержимое библиотек меняется, то меняется и временная метка. Файлы скриптов и стилей кешируются браузером. Наличие временной метки позволяет принудительно обновить файл стилей. 


Недавно впервые столкнулся в CLR процедурами, поэтому следующий пост напишу о том, как создать простую CLR процедуру и добавить ее  на сервер.

Комментарии

Популярные сообщения из этого блога

Пример взаимодействия с Odnoklassniki Rest API на C#.

Итак, как и обещал, продолжаю тему взаимодействия с различными API. В прошлый раз писал про  API ВКонтакте , сегодня напишу про API Одноклассников. Первое, что нам нужно сделать - это зарегистрироваться как разработчик на Одноклассниках. Сделать это можно по следующей ссылке  Форма регистрации разработчика приложений Получив права разработчика, необходимо зарегистрировать сайт как приложение. Подробно как это сделать можно прочитать  здесь После того как сайт будет зарегистрирован придет письмо, содержащее: Application ID: xxxxxx. Публичный ключ приложения: xxxxxxxxxxxxxxxxxxxxxxxxx. Секретный ключ приложения:  xxxxxxxxxxxxxxxxxxxxxxxxx. Ссылка на приложение: http://www.odnoklassniki.ru/games/xxxxx Используя эти данные можно начать работу с API. Для выполнения запросов к API пользователь должен авторизоваться в Одноклассниках. Добавляем на нашем сайте ссылку для авторизации пользователя: http://www.odnoklassniki.ru/oauth/authorize?client_id={0}&scope={1}&

C# и API ВКонтакте. Обращение к адресу API-сервиса путем создания HTTP-запроса (POST)

В статье  C# POST. Отправляем запросы на адрес стороннего сервера  я рассказал про метод, с помощью которого можно работать с различным API, принимающими POST запрос и возвращающими ответ в виде json или xml. Сегодня я хочу написать, как я применял этот метод при работе с API  ВКонтакте. Для примера возьму задачу получения через API списка групп, в которых состоит пользователь. В первую очередь необходимо зарегистристрировать наш сайт как приложение ВКонтакте. Заходим по ссылке  http://vk.com/editapp?act=create&site=1  и подключаем наш сайт. Дальше задача  делится на две подзадачи, а именно: авторизация пользователя и обращение к API для получения списка групп. Для авторизации мы пользователю предлагаем перейти по следующей ссылке: http://api.vkontakte.ru/oauth/authorize? response_type=code&redirect_uri={0} &client_id={1} &scope={2} &display=page , redirect_uri - адрес страницы нашего сайта, куда будет возвращен пользователь после авторизации Вконтак

IIS (Internet Information Services) и applicationHost.config. Изменение доменных привязок.

Сегодня затронем тему настроек IIS (Internet Information Services). Речь пойдет о версии IIS 7.0 (7.5). Допустим у вас есть  большое количество поддоменов, которые нужно привязать к сайту или быстро исправить на уже существующих привязках IP адрес. Стандартный интерфейс IIS позволяет редактировать привязки по одной, что в нашем случае не очень-то удобно. См. картинку Чтобы ускорить процесс, нужно вспомнить, что все доменные привязки (и не только, а и другие настройки) хранятся в конфигурационном файле applicationHost.config. Данный файл находится по адресу C:\Windows\System32\inetsrv\config\ В файле отредактировать привязки можно очень быстро.