При достаточно высокой конкуренции по определенным ключевым словам веб-страница получит дополнительное преимущество, если будет загружаться быстро, если вообще не моментально, по сравнению с конкурентами.
Поэтому оптимизация скорости работы сайта можно и нужно относить к оптимизации для поисковиков (SEO).
Для ускорения работы сайта уже давно используют два метода:
При объединении, файлы одного типа, прежде всего, скрипты или стили, объединяются в один файл (скриптов или стилей). Благодаря этому браузеру не нужно делать много запросов к серверу для получения каждого файла, что тоже затягивает время на загрузку - а число запросов обычно ограничено.
Ну, и понятно, что если такие файлы и объединить, и минифицировать одновременно, то прирост скорости в некоторых случаях будет весьма значительным.
Оптимизация отключена для вас, если вы в данный момент зашли в админку.
Поэтому оптимизация скорости работы сайта можно и нужно относить к оптимизации для поисковиков (SEO).
Для ускорения работы сайта уже давно используют два метода:
- минификацию, или минимизацию (minification)
- объединение, или конкатенацию (bundling)
При объединении, файлы одного типа, прежде всего, скрипты или стили, объединяются в один файл (скриптов или стилей). Благодаря этому браузеру не нужно делать много запросов к серверу для получения каждого файла, что тоже затягивает время на загрузку - а число запросов обычно ограничено.
Ну, и понятно, что если такие файлы и объединить, и минифицировать одновременно, то прирост скорости в некоторых случаях будет весьма значительным.
Именно для этих целей для Composite C1 CMS недавно был выпущен специальный пакет Composite.Web.BundlingAndMinification. Все что вам нужно - передать содержимое страницы в специальную C1-функцию, а она сделает свое дело.
К слову, последние версии стартового сайта Venus уже используют этот пакет и оптимизируют с его помощью свои страницы.
Установить пакет вы можете стандартным способом:
Раздел "Система" / Пакеты / Доступные пакеты / Composite.Web / Composite.Web.BundlingAndMinification
Однако пред установкой этого пакета вам нужно установить еще один пакет: Composite.Web.Css.Less, причем версии не ниже 1.2.4.
Текущая версия пакета Bundling & Minification 1.0.4 и его можно установить на Composite C1 CMS версии не ниже 4.2. Минимальная версия для LESS CSS 1.2.4 - тоже 4.2
К слову, последние версии стартового сайта Venus уже используют этот пакет и оптимизируют с его помощью свои страницы.
Установка и использование пакета Bundling & Minification
Установить пакет вы можете стандартным способом:
Раздел "Система" / Пакеты / Доступные пакеты / Composite.Web / Composite.Web.BundlingAndMinification
Однако пред установкой этого пакета вам нужно установить еще один пакет: Composite.Web.Css.Less, причем версии не ниже 1.2.4.
Текущая версия пакета Bundling & Minification 1.0.4 и его можно установить на Composite C1 CMS версии не ниже 4.2. Минимальная версия для LESS CSS 1.2.4 - тоже 4.2
Использование пакета Bundling & Minification
Для оптимизации страницы нужно ее содержимое передать в параметр Page функции Composite.Web.BundlingAndMinification.
Удобнее всего это сделать с помощью шаблонов страниц.
- Откройте шаблон страницы в разделе "Макет".
- Добавьте XML-код функции перед <html> тегом: <f:function name="Composite.Web.BundlingAndMinification" xmlns:f="http://www.composite.net/ns/function/1.0">
<f:param name="Page">
</f:param>
</f:function>
<html xmlns="http://www.w3.org/1999/xhtml" class="no-js" lang="@Lang">
<head><!-- пропущено --></head>
<body><!-- пропущено --></body>
</html> - Переместите все содержимое тегов <html></html>, включая сами теги, в параметр Page: <f:function name="Composite.Web.BundlingAndMinification" xmlns:f="http://www.composite.net/ns/function/1.0">
<f:param name="Page">
<html xmlns="http://www.w3.org/1999/xhtml" class="no-js" lang="@Lang">
<head><!-- пропущено --></head>
<body><!-- пропущено --></body>
</html>
</f:param>
</f:function>
- Сохраните шаблон.
- Повторите шаги 1-4 для всех шаблонов, где нужна оптимизация.
Что и как кэшируется пакетом?
Пакет устанавливает срок в 1 год в HTTP-заголовке Expires (когда истекает срок).
Если какой-нибудь из оптимизированных файлов (JS, CSS) меняется, оптимизационная платформа ASP.NET сгенерирует новый маркер (token), благодаря чему браузер всегда получить последние версии файлов с оптимизацией.
А вот c LESS-файлами немного все по-другому. В "объединение" (bundle) включается CSS файл, генерируемый с LESS-эквиалента. Поэтому когда вы вносите изменения в LESS-файл, эти изменения не попадут в оптимизированное "объединение". Нужно просто заставить систему перегенерить CSS файл.в таком случае: либо удалите такой файл, либо перезапустите сервер.
А вот c LESS-файлами немного все по-другому. В "объединение" (bundle) включается CSS файл, генерируемый с LESS-эквиалента. Поэтому когда вы вносите изменения в LESS-файл, эти изменения не попадут в оптимизированное "объединение". Нужно просто заставить систему перегенерить CSS файл.в таком случае: либо удалите такой файл, либо перезапустите сервер.
Важные замечания:
Пакет не работает с эталонными/главными страницами (ASP.NET Master Pages) и функциями на основе пользовательских элементов управления (User Control Functions).
Но работает с XML- и Razor- шаблонами и С1 XSLT- и Razor-функциями.
Пакет работает со стилями (CSS и LESS) и Java-скриптами, включая стили в "объединение" с виртуальным названием "~/Bundles/Styles[ключ файлов страницы]", а скрипты - с названием "~/Bundles/Scripts[ключ файлов страницы]"
Не работает с ссылками на CDN.
Оптимизация отключена для вас, если вы в данный момент зашли в админку.
Как отключить оптимизацию?
Когда вы логинитесь в админ. консоль сайта, то оптимизация отключена и вы имеете дело с оригинальными неоптимизированными файлами. Несмотря на это, любой посетитель сайта, который незалогинен в админку имеет дело с оптимизированными файлами.
Можно также отключить оптимизацию вообще - через Web.config:
(Статья актуальна на момент написания для версии Composite C1 4.2 Update 1 и пакетов Composite.Web.BundlingAndMinification 1.0.4 и Composite.Web.Css.Less 1.2.4.)
Можно также отключить оптимизацию вообще - через Web.config:
- Найдите в Web.config параметр по пути system.web/compilation/@debug.
- Установите ему значение true.
- Сохраните изменения.
<system.web>
<compilation debug="true" />
<!-- пропущено -->
</system.web>
<compilation debug="true" />
<!-- пропущено -->
</system.web>
(Статья актуальна на момент написания для версии Composite C1 4.2 Update 1 и пакетов Composite.Web.BundlingAndMinification 1.0.4 и Composite.Web.Css.Less 1.2.4.)
Комментариев нет:
Отправить комментарий