Оптимизация публикации

Материал из Movable Type Wiki
Перейти к: навигация, поиск

Прежде чем изучать эту статью, рекомендуется ознакомиться со следующими материалами:


Содержание

Перевод шаблонов на ручной режим

Большинство индексных шаблонов можно перевести на ручной режим. Тогда публикация будет производиться вручную и нагрузка на сервер при добавлении/изменении контента снизится.

Шаблоны, которые обязательно нужно перевести на ручной режим публикации:

  • Javascript;
  • Таблица стилей (CSS);
  • И все другие статические шаблоны, созданные вами.


Перевод шаблонов в режим очереди публикации

Некоторые шаблоны не обязательно публиковать сразу же. Например, архивы по месяцам, а также любые другие архивы со списком записей (см. Типы шаблонов (архивные шаблоны со списком записей)). Все эти архивы можно перевести в режим очереди публикации, это значительно увеличит общую скорость публикации.

Простой пример:

  • У вас есть шаблон индексный шаблон Sitemap, в котором публикуются все записи, страницы и множество других данных. Если в блоге мало контента, то этот процесс не будет заметен. Но, если наоборот, то, например, при каждом добавлении комментария будут ощущаться заметные тормоза.
  • Тоже самое происходит при добавлении комментария и публикации архивных шаблонов. При добавлении комментария публикуется не только страница с записью, но также: страница с категорий, в которой размещена запись; архив по месяцам; и любые другие архивы, в которых присутствует эта запись.

Чтобы перевести шаблон в режим очереди, откройте его, а затем в опциях выберите «С использованием очереди публикации».

Примечание: для корректного использования очереди публикации необходимо настроить скрипт run-periodic-tasks.


Сокращение количества модульных шаблонов

В стандартных шаблонах Movable Type (те, которые создаются при создании блога), присутствуюет множество модульных шаблонов. Например: HTML Head, Боковое меню, Детали комментария, и др. Эти шаблоны включаются в другие с помощью тега <mt:Include module="Имя модульного шаблона" />.

Можно сократить количество модулей путём размещения их кода сразу же в шаблонах, либо использовать тег <mt:SetVarTemplate>. Пример использования этого тега:

  • Сначала в шаблоне необходимо создать блок с кодом:
<mt:SetVarTemplate name="VAR_TEMPLATE_NAME">
    Код шаблона
</mt:SetVarTemplate>
  • А затем в нужном месте шаблона вызвать этот код:
<mt:Var name="VAR_TEMPLATE_NAME" />


Кеширование шаблонов

Кешировать можно модульные шаблоны. Хотя по умолчанию в стандартных шаблонах ни один модуль не использует кеширование. Перед настройкой кеширования шаблонов, нужно зайти в «Параметры -> Публикация» и активировать модуль кеширования.

Примечание: следует учесть, что нельзя кешировать шаблоны, в которых присутствуют изменяющиеся данные, иначе на всех страницах будет один и тот же контент. Например, нельзя кешировать шаблоны «Комментарии» и «Детали комментария», так как в первом случае во всех записях будут комментарии к одной записи, а во втором — в каждой записи все комментарии будут одинаковыми.

Кеширование модульных шаблонов желательно использовать следующим образом:

  • У вас есть индексный шаблон, например, sitemap.xml.
  • Вы можете создать модульный шаблон «SitemapModule», который при помощи тега <mt:Include module="SitemapModule" /> включить в индексный шаблон sitemap.xml. И указать для шаблона «SitemapModule» обновление кеша 1 раз в сутки.
  • После этого индексный желательно перевести в режим очереди публикации. В этом случае нагрузка будет минимальная.


Использование PHP

Как известно, Movable Type позволяет публиковать файлы с любым расширением. Чтобы достичь максимальной производительности, можно «вынести» все неизменямые части шаблонов в индексные шаблоны и публиковать их в ручном режиме. И включать их в остальные шаблоны не с помощью <mt:Include />, а используя встроенные средства PHP.

Пример:

  • У каждого блога есть навигация, контент в которой одинаковый на всех страницах. Чтобы не публиковать множество файлов при изменении этого контента, достаточно создать индексный шаблон navigation.php, который затем включить в остальные шаблоны:
<?php
    include ('/home/username/example.com/docs/navigation.php');
?>

Но можно использовать PHP и при помощи встроенной в MT технологии SSI. Для этого её нужно активировать в «Параметры -> Публикация» — в пункте «Включении на стороне сервера» необходимо выбрать «PHP-включение».

Пример:

  • После активации необходимо создать модульный шаблон «NavigationModule» и в необходимом месте шаблона использовать тег <mt:Include />:
<mt:Include module="NavigationModule" ssi="php" />

В этом случае Movable Type сам сгенерирует PHP-файл, который будет располагаться в папке includes_c. Кстати, при использовании этого варианта можно использовать кеширование.


См. также

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты