Опубликован: 16.06.2010 | Уровень: специалист | Доступ: платный
Лекция 8:

Автоматизация клиентской оптимизации

< Лекция 7 || Лекция 8: 12345 || Лекция 9 >

7.5. Решаем проблемы с установкой Web Optimizer

После многочисленных установок Web Optimizer (http://www.web-optimizer.ru/) на JoomLa! (http://joomLa.org/, как версии 1.0, так и 1.5) было решено собрать воедино полезное знание о возникающих проблемах (связанных в основном с текущим некорректным серверным окружением), чтобы позволить их самостоятельно решить большому числу пользователей.


Итак, давайте разбираться по порядку, что нам делать в следующих случаях.

7.5.1. Функционирование Web Optimizer

Довольно часто приходится разбираться с тем, работает ли Web Optimizer на сайте или его установка каким-то образом не подключилась к обработке HTML-документа. Начиная с версии 0.5.2 это можно установить, найдя строку <title lang="wo"> в коде страницы (если метка там отсутствует, значит, Web Optimizer не отрабатывает).

Для более ранних версий это решение можно принять на основе отсутствия в коде HTML-документа отступов в начале строки, двойных переводов строк или наличия характерных закэшированных имен файлов в секции head(cache/1234a6789b.css или cache/1234c6789d.js, здесь 1234c6789d — произвольная строка в шестнадцатеричной записи).

Если обнаружить следы работы Web Optimizer не удалось, то необходимо перепроверить корректность вызовов Web Optimizer в файлах системы управления сайтом и, возможно, провести установку приложения еще раз — таким образом Web Optimizer сможет самостоятельно произвести все необходимые изменения.

Если нужно получить информацию о необходимых изменениях исходных файлов CMS, то следует в ходе установки отключить автоматическое изменение /index.php:

Изменение /index.php -> Включить автозапись -> Нет

и на последнем шаге зайти на вкладку "Необходимые изменения".

7.5.2. "Кракозябры" вместо сайта

Обычно это связано с двойным сжатием HTML-документа. Одно из сжатий может быть наложено самим Web Optimizer, а второе — как используемой системой управления сайтом, так и сервером.

Чтобы снять одно из накладываемых сжатий, можно отключить его либо в CMS, либо в конфигурации сервера, либо в самом Web Optimizer:

Настройки архивирования — Применить gzip для HTML — Нет

7.5.3. Белый экран вместо сайта

Основная проблема возникновения белого экрана (превышение лимита памяти при создании CSS Sprites) уже устранена в версии 0.5+, поэтому если у вас более старая версия, то стоит просто ее обновить.

Также стоит заглянуть в логи ошибок вашего сервера, чтобы узнать, что привело к такому состоянию. Обычно это помогает решить проблему.

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

Если все приведенные шаги не принесли результата, то можно попробовать отключить часть настроек Web Optimizer, чтобы понять, какие вещи ваш сервер может выполнить самостоятельно. Начать стоит с корневого набора ("Настройки сжатия" и "Настройки архивирования") для всех трех групп (CSS, JavaScript, HTML) действий по оптимизации и двигаться в сторону подключения более детальных параметров (например, "Включить внешние файлы", ""Вечное" кэширование" или "CSS Sprites").

7.5.4. Некорректный внешний вид


Это может быть причиной различных проблем, но для начала можно попробовать отключить CSS Sprites:

CSS Sprites - Применить CSS
Sprites - Нет

затем, если это не помогло ситуации, можно отключить data:URI:

Data:URI - Применить data:URI
- Нет

После этих шагов все подключаемые CSS-файлы не будут обрабатываться через CSS Tidy, а будут только объединяться (и будет выполняться первичная минимизация).

Если и после этого внешний вид сайта "разъехался", то стоит отклю- чить объединение стилей внутри <head>:

Включить внешние файлы - Включить объединение внешних CSS-файлов - Нет

или вообще минимизацию для CSS-файлов:

Настройки сжатия - Минимизировать и объединить CSS-файлы - Нет

Если есть желание разобраться в возникшей проблеме более детально, то можно при отключенном объединении стилей внутри <head> попробовать исключить файлы один за другим при помощи следующей настройки:

Включить внешние файлы - Исключить из объединения файлы - Список файлов через пробел

найти тот файл (или те файлы), которые обрабатываются некорректно, привести их к стандартному состоянию при помощи валидатора jigsaw.w3.org/css-validator/ и попробовать объединить снова.

7.5.5. Пропавшие или неправильные фоновые изображения

В некоторых случаях проблемы после установки Web Optimizer сводятся к тому, что некоторые фоновые изображения пропадают или "портятся". Для устранения этого набора проблем необходимо установить, с какими первоначальными фоновыми изображениями возникают трудности (используя любые средства для отладки верстки), и исключить эти изображения из процесса создания CSS Sprites:

CSS Sprites — Исключить из CSS Sprites файлы — Список файлов через пробел

Если данная мера не приносит результата, то CSS Sprites можно вообще выключить:

CSS Sprites — Применить CSS Sprites — Нет

7.5.6. Некорректное поведение сайта

Обычно это сводится к тому, что часть клиентской логики перестает отрабатывать. Нужно хорошо понимать, что если, например, форма для ввода комментариев у вас на сайте выводится при помощи JavaScript и после Web Optimizer она перестала выводиться, то это проблемы не внешнего вида, а клиентской логики.

Для локализации проблемы с клиентской логикой рекомендуется попробовать отключить минимизацию JavaScript-файлов:

Настройки сжатия — Минимизировать и объединить JavaScript-файлы — Нет

а потом (при сохранении проблемы) попробовать исключить один за другим отдельные файлы:

Включить внешние файлы - Исключить из объединения файлы - Список файлов через пробел

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

7.5.7. Недоступность файлов для пользователей

Иногда возникают проблемы с отображением и функционированием сайта у всех пользователей, хотя у владельца сайта (в его браузере) при этом все хорошо. Если диагноз проблемы звучит подобным образом, то нужно проверить, по какому адресу находятся директории кэширования, сам Web Optimizer и включена ли защита Web Optimizer от внешнего доступа:

Использование .htaccess - Защитить установку Веб Оптимизатора с помощью htpasswd - Да

В этом случае директории кэширования нужно вынести из папки самого Web Optimizer (например, в корневую директорию cache, доступную на запись для веб-сервера) либо отключить защиту приложе ния:

Использование .htaccess - Защитить установку Веб Оптимизатора с помощью htpasswd - Нет

7.5.8. Отсутствие поддержки множественных хостов

Если требуется включить несколько параллельных хостов для ускорения загрузки статических ресурсов, то стоит выполнить следующие действия:

  1. Проверить наличие поддержки этих хостов в DNS. Для этого нужно сделать соответствующие этим хостам записи в вашей DNS-зо-не, указывающие на требуемый IP-адрес (обычно тот же, что и у текущего сайта).
  2. Включить поддержку этих хостов на уровне самого сервера. Для Apache это делается директивой ServerAlias, например:
    ServerAlias i1.site.ru
    ServerAlias i2.site.ru
  3. Проверить, что эти хосты зеркалируют основной сайт. Для этого нужно взять адрес любого статического объекта на сайте (напри- мер, site.ru/images/my.png ) и попробовать его открыть через все дополнительные хосты ( i1.site.ru/images/my.png ). При наличии каких-либо проблем необходимо повторить предыдущие шаги.
  4. Добавить указанные хосты в конфигурацию Web Optimizer:
    Множественные хосты - Доступные хосты - Название хостов через пробел

    и включить поддержку множественных хостов:

    Множественные хосты - Включить параллельные хосты, например, i1 i2 - Да

    Web Optimizer автоматически проверяет несколько наиболее распространенных хостов, и последняя настройка может и не потребоваться.

После описанных действий все изображения на сайте будут отдаваться через несколько хостов, что существенно ускорит загрузку каждой страницы.

7.5.9. Множественные хосты не сохраняются

Web Optimizer автоматически проверяет все введенные хосты на доступность, чтобы быть уверенным, что их можно использовать для параллельных загрузок. Вы можете отключить данную проверку (если в силу каких-либо причин она производится некорректно):

Множественные хосты - Автоматически проверять доступность хостов - Нет
< Лекция 7 || Лекция 8: 12345 || Лекция 9 >
Ольга Артёмова
Ольга Артёмова

Доброго времени суток!

Прошла курс, но почему-то диплом получить не могу, хотя курс значится завершенным, хотя обязательные два модуля пройдены. Как решить эту проблему?

Сертификация: оптимизация и продвижение web-сайтов.

Ярославй Грива
Ярославй Грива
Россия, г. Санкт-Петербург
Ёдгор Латипов
Ёдгор Латипов
Таджикистан, Кургантепа