На данный момент тематика автоматической клиентской оптимизации сильно волнует умы веб-программистов, предпринимателей и просто энтузиастов. Выгоды вполне очевидные: быстрый сайт имеет значительные преимущества перед медленными конкурентами. При наличии высокой конкуренции это может оказаться существенным. Более того, пользователи не склонны ждать долго. Быстрая загрузка может являться ключом к процветанию интернет-направления целой компании.
Понимание этого существует давно. Однако создать мощное и открытое веб-приложение, которое бы аккумулировало весь накопленный опыт и самостоятельно оптимизировало бы конечный сайт, до сих пор не удавалось. Давайте посмотрим на те продукты, с помощью которых можно автоматизировать те или иные действия по клиентской оптимизации.
К дополнительным минусам стоит отнести некоторую нагрузку на процессор при распаковке такого архива (обычно составляет 30-300 мс). Доступен в качестве реализации на PHP.
Приложение портировано на два языка: PHP и C (есть версия для локального использования). На текущий момент приложение застыло в версии 1.3, и требуются добровольцы, чтобы привести его в соответствие с текущим состоянием веб-стандартов и продолжить разработку.
Интеграция его с рабочим сайтом достаточно сложна (необходимо обладать продвинутыми знаниями, чтобы правильно
настроить приложение и решить возникающие проблемы), но эффективность является весьма впечатляющей.
К дополнительным минусам стоит отнести отсутствие поддержки CSS data:URI технологий, а также
невозможность применения его для распределения параллельных загрузок.
qpimg (http://code.googLe.com/p/qpimg/) —
В качестве основных плюсов стоит отметить полностью автоматический режим, моментальное применение изменений,
связанных с объединением картинок (всегда можно увидеть, как изменится дизайн в любом браузере), и возможность
гибкой настройки и изменения файлов с самими
Приложение довольно сложно в установке (необходимо внесение
изменений как в .htaccess, так и в исходные файлы шаблона сайта) и
обладает рядом ограничений (не позволяет объединять файлы из разных
директорий). Доступно только для PHP-сайтов, работающих под
управлением Apache + .
Основные возможности: минимизация, объединение и кэширование CSS- и JavaScript-файлов,
"безопасная" конвертация в data:URI, настройка использования .htaccess,
настройка директорий кэширования и возможность исключения ряда файлов.
На данный момент приложение доступно в том числе как дополнение
/-к к Wordpress и Joomla! 1.0, а также может быть установлено на
любые сайты, использующие
Список поддерживаемых систем управления сайтом и фреймворков включает несколько десятков наиболее известных, в том числе: Wordpress, Joomla!, DrupaL Bitrix, NetCat, UMI.
Web Optimizer работает как на
Следующее приложение, Web Application Optimizer (http://wao.mono-software.com/), обладает почти тем же функционалом, что и Minify, но приэтом предназначено для сайтов, использующих ASP .NET. В числе основных возможностей: уменьшение и сжатие CSS- и JavaScript-файлов, уменьшение и gzip-сжатие для HTML-файлов. После установки приложения необходима его дополнительная ручная настройка.
WAO является платным и распространяется по цене от $99 для одного сайта.
Aptimize распространяется по годовой подписке в размере $1000 для одного сервера.
Давайте рассмотрим базовую установку веб-приложения для автоматической клиентской оптимизации — Web Optimizer.
Web Optimizer поставляется в двух вариантах: ZIP-архив и мини-установщик. Для загрузки первого варианта идем по адресу code.google.com/p/web-optimizator/downloads/list и выбираем Featured версию 0.5 или выше.
Загружаем ZIP-архив в корень сайта. Если к сайту есть SSH-доступ, то можно использовать просто wget: wget http://web-optimizator.googlecode.com/files/weboptimizer.v0.5beta.zip
(рис 7.1) Загружаем Web OptimizerЗатем полученный архив нужно будет распаковать в корень, чтобы получилась папка web-optimizer.
Если к сайту есть только FTP-доступ, то загружаем сначала на локальный диск, потом распаковываем, а потом уже (например, через FAR) копируем в корень сайта.
При отсутствии желания загружать распакованный архив на сервер (или распаковывать на сервере загруженный архив) есть версия мини-установщика, который (если имеется curL на сервере) сам все загрузит и начнет установку. Для этого нужно загрузить только файл instaLL.me.php в корень сайта и открыть его в браузере.
После того как все необходимые файлы оказались на сайте, нужно выставить права на запись, как минимум, для файла web-optimizer/config.php и (опционально) папки web-optimizer/cache для пользователя, под которым работает сервер. Иначе настройки и закэшированные версии сжатых файлов не смогут сохраниться. При желании папка кэширования может быть другой (об этом чуть ниже), в этом случае будет необходимо только выставить права на конфигурационный файл.
Заходим в браузере по адресу
http://ваш_сайт/web-optimizer/index.php
Вместо web-optimizer может быть произвольная директория, в которой находится Web Optimizer. Видим приветственный экран от Web Optimizer. Если не видим, то стоит перепроверить, куда был скопирован Web Optimizer, и зайти именно в ту папку.
(рис 7.2) Устанавливаем Web OptimizerЗдесь возможно два варианта развития событий:
Быстрая установка
Для начала быстрой установки вводим будущий логин и пароль
доступа к административной части и нажимаем зеленую кнопку "Быстрая
установка". После этого Web Optimizer вычисляет директории на сервере,
сохраняет все настройки по умолчанию и осуществляет цепочную опти-
мизацию для главной страницы: создает закэшированные версии сжатых
файлов. Только потом, если файлы (обычно только корневой index.php,
зависит от используемой
Иначе Web Optimizer выведет инструкции по изменению этих файлов.

(рис 7.4) Быстрая установка Web Optimizer(рис 7.3) Окончание установки Web Optimizer
(рис 7.6) Окончание установки Web Optimizer: инструкции по интеграции(рис 7.5) Настройка Web OptimizerОбычная установка
Обычная установка отличается от быстрой только наличием промежуточного шага с редактированием настроек. Запустить ее можно, нажав по кнопке "Далее", цифре 2 или 3 в верхнем меню или оранжевой стрелочке справа.
Все настройки и их особенности подробно описаны в следующем
разделе. Прежде всего нужно убедиться в том, что вычисленные пути яв-
ляются правильными. Также можно задать произвольные директории кэ-
ширования: это будет необходимо при включении настройки "Защищен-
ный режим" (находится в разделе "Использование .htaccess "). После
этой настройки пароль при доступе к Web Optimizer будет запрашиваться
только через HTTP Basic Authorization. Дополнительно вводить его не по-
требуется. Однако файлы, которые находятся внутри папки с Web
Optimizer, станут недоступны обычным пользователям, поэтому директо-
рии кэширования нужно из нее перенести.
(рис 7.7) Настройка Web Optimizer
В Web Optimizer доступно несколько инструментов для управления приложением.
(рис 7.8) Панель управления Web OptimizerВо-первых, это конфигурирование всех настроек (здесь и далее при работе не в защищенном
режиме нужно будет ввести логин и пароль), которое можно осуществить по кнопке "Далее"
(или клику по цифрам 2 или 3 или оранжевой стрелочке справа). Во-вторых, это очистка кэша
(будет необходимо, если вы провели изменение каких-либо CSS- или JS-файлов на сервере при
включенной настройке "Не проверять время изменения файлов") — кнопка "Очистить кэш". В-третьих,
это возможность безболезненно удалить Web Optimizer (будут удалены все добавленные в файлы .htaccess будет очищен от оптимизационных директив) кнопкой "Удалить".
При наличии curl на сервере и существовании более новой версии, чем текущая, будет предложено обновиться (появится блок с кнопкой "Обновить"). При обновлении все исходные настройки будут сохранены. Также могут добавиться некоторые новые. В обычном режиме панель администрирования для Web Optimizer выглядит следующим образом:
(рис 7.9) Панель управления Web Optimizer: установлена последняя версия
Ниже приведены настройки, доступные в Web Optimizer версии 0.5.
Здесь можно выставить пути к кэширующим директориям (на файловой системе), в которых будут
записываться сохраненные уменьшенные CSS-, JavaScript- и HTML-файлы. Также здесь можно определить
корневую директорию сайта (необходима для правильного расчета всех
Эта группа настроек отвечает за объединение и минимизацию JavaScript- и CSS-файлов. По умолчанию
JavaScript-файлы объединяются и минимизируются при помощи JSMin (или YUI
Web Optimizer может загружать внешние JavaScript-файлы (вызываемые с других доменов), а также внутренний код (заключенный прямо в <script>
). Здесь можно настроить и "склеивание" CSS-кода, находящегося в <style> (по умолчанию включено). Также можно указать (через пробел) названия файлов (названия, а не полные пути), которые нужно исключить из логики объединения. На этапе тестирования была обнаружена невозможность объединить исходные библиотеки Tiny MCE и
В этой группе собраны настройки преобразования метода загрузки JavaScript. В частности, можно вынести объединенный JavaScript-файл перед </body> (или вообще вызывать его загрузку по событию DomContentLoaded), можно вынести загрузку некоторых счетчиков, рекламы и информеров также в самый низ документа (после JavaScript-кода результирующий HTML-код вставляется в исходное место на странице, обеспечивая постепенное появление дополнительных рекламных блоков после того, как загрузилось основное содержание).
Данная настройка позволяет не проверять при загрузке каждой страницы время изменения и содержание всех файлов, а только существование закэшированных версий. За счет этого мы получаем существенный прирост серверной производительности (по умолчанию настройка включена). В случае отладки или очень частого изменения исходных JavaScript- или CSS-файлов настройку лучше отключить.
Данная группа настроек регулирует, отдавать ли браузеру JavaScript-, CSS- или HTML-файлы в виде архивов. gzip-сжатие позволяет сэкономить 70-85% трафика при передаче текстовых файлов, однако может быть (особенно в случае сжатия через PHP и высоконагру-женных проектов) не очень оптимальной для сервера. В любом случае по возможности все настройки сжатия выносятся в .htaccess (для CSS-и JavaScript- в статическом виде). При невозможности изменения .htaccess gzip-версии JavaScript- и CSS-кода сохраняются в кэши-рующих директориях, что также сводит нагрузку на процессор (через PHP) к минимуму.
Дополнительно есть возможность (которая выставляется через архивированный JavaScript-код) проверять через cookie, поддерживает ли клиентский браузер сжатие (как было указано во второй лекции, иногда соответствующие заголовки могут пропадать в силу различных причин).
Настройки этой группы отвечают за выставление кэширующих заголовков для JavaScript-, CSS-, HTML- или статических файлов (изображений и анимации). Для изображений и анимации соответствующие правила размещаются только в .htaccess, для остальных файлов они дублируются по необходимости через PHP. По умолчанию для статических файлов выставляется срок кэширования на 10 лет (при изменении файлов новые версии имеют другое имя, создаваемое на основе md5-хэша от общего содержимого файлов).
Для HTML-файлов есть возможность вручную выставить подходящий срок действия клиентского кэша. Отличие этой настройки от следующей группы (серверного кэширования HTML-файлов) состоит в том, что выводимый HTML никак на сервере не сохраняется, мы только указываем браузерам, что они могут не перезапрашивать HTML-документы в течение определенного времени. Будут ли браузеры следовать этому указания или нет, остается полностью на их совести.
Дополнительно существует возможность задать кэширующие заго-
ловки для всех статических файлов (как на уровне файла .htaccess, так
и через проксирование запросов при помощи PHP).
Для существенного ускорения работы серверной стороны практически во всех случаях требуется применять серверное кэширование. И практически все
Также возможно выдавать сразу не весь документ, а первые 1-2 Кб (через сброс документа), и потом рассчитывать остальную часть. Это может помочь визуально ускорить загрузку страницы на некоторых окружениях. Для настройки кэширования доступен список частей URL сайта, которые нужно исключить (есть возможность задавать регулярные выражения), и список роботов (USER AGENTS), для которых нужно форсировать выдачу кэширующего файла.
Это, пожалуй, самая технологически мощная и самая спорная часть
Web Optimizer. Правильное использование
Также доступны настройки по использованию JPEG вместо PNG для
полноцветных изображений, по "агрессивному" режиму ( repeat-x
и repeat-y будут объединяться без учета фактических размеров кон-
Для повышения стабильности работы добавлен режим "ограниченной" памяти: если у
PHP-процесса меньше 64 Мб памяти (этого хватает для создания спрайта примерно
3000 на 3000 пикселей, что вполне достаточно для большинства сайтов), то изображения,
по площади большие 4000 пикселей, будут исключены. Также есть настройка по исключению
больших изображений по их линейным размерам (в пикселях, по умолчанию 900) и прямому
исключению файлов (опять-таки задаются имена файлов, а не полный путь к ним) из процесса создания CSS
Технология data:URI позволяет включать фоновые изображения прямо в CSS-файл. Поддерживается всеми современными браузерами и IE 8. Имеет опциональное ограничение на размер изображения в 24 Кб (32 Кб data:URI кода получаются из 24576 байтов бинарного кода). При создании data:URI для IE 7 в CSS-файл вставляются хаки, благодаря чему дизайн сайта остается неизменным для этих браузеров.
Также при создании data:URI крайне желательно оптимизировать изображения. Для этого используется API от smush.it. Для корректной оптимизации изображений нужны права на запись для веб-сервера на сами изображения. Эта настройка по умолчанию отключена, потому что оптимизировать изображения имеет смысл всего один раз и при последующих сборках CSS-файлов использовать уже готовый результат.
Для гибкого управления настройками данной группы также доступно конфигурируемое исключение ряда файлов и ограничение включения файлов по размеру.
Данная настройка позволяет включить распределение изображений по статическим хостам. Каждому изображению всегда будет соответствовать один хост (чтобы избежать забивания кэша одними и теми же изображениями со всех доступных хостов). Для использования данного механизма ускорения загрузки необходимо прописать в DNS все альтернативные хосты на тот IP-адрес, который будет их обслуживать (обычно это текущий сайт) и добавить в конфигурации сервера алиасы для основного сайта в виде этих хостов. Например:
ServerAlias i1.site.ru ServerAlias i2.site.ru
После этого можно добавить i1 i2 в список хостов для Web Optimizer и убедиться в том, что изображения "раскидываются" по этим хостам. При установке Web Optimizer автоматически проверяется ряд хостов на возможность их использования в качестве альтернативных (с тем же корнем сайта), также все вручную указанные хосты проверяются на доступность (с них загружаются тестовые картинки). Стоит иметь в виду, что при включении "безопасной" установки (о ней чуть ниже) проверка хостов становится недоступной и их прописывать нужно будет вручную, не перезапуская настройку Web Optimizer.
Большая часть настроек gzip-сжатия и кэширования может быть записана в конфигурационном файле
вашего сервера для избежания дополнительной работы на стороне серверных скриптов. Это можно
проделать с помощью файла .htaccess (при необходимости вы сможете впоследствии самостоятельно
перенести все настройки в файл httpd.cond ). Web Optimizer автоматически проверяет доступные модули
и конфигурирует запись в .htaccess (естественно, для этого последний должен быть доступен на запись), modgzip, moddeflate и modfilter отвечают за сжатие файлов "на лету", modrewrite и modmime — за статическое
архивирование, modheaders и modsetenvif — за обеспечение корректной обработки сжатых файлов на проксирующих
серверах и в старых браузерах, modexpires — за выставление кэширующих эаголовков.
Также возможно расположить .htaccess либо в директории сайта
(это бывает полезно, если на одном хосте располагается несколько
сайтов в разных дирекориях), либо в самом корне сайта. По умолчанию оба
месторасположения совпадают. Возможно и защитить установку Web
Optimizer с помощью .htpasswd. В этом случае для доступа к настройкам
нужно будет ввести логин и пароль через окно HTTP Basic Authorization в
браузере (это позволяет вынести Web Optimizer в произвольную
директорию внутри сайта, предварительно расположив директории кэширования
вне
В случае тестирования сайта на закрытом от внешнего доступа хосте (закрытом при помощи HTTP Basic Authorization) есть возможность задать логин и пароль доступа в конфигурации Web Optimizer, чтобы последний имел возможность загрузить и обработать динамические файлы.
Web Optimizer поддерживает автоматическое изменение необходимых для корректной работы файлов для нескольких десятков
Web Optimizer — достаточно мощный и гибкий инструмент для клиентской оптимизации произвольного сайта. Но правильная его настройка требует внимательности и понимания желаемого результата. Давайте рассмотрим некоторые наиболее характерные изменения в конфигурации по умолчанию.
Достаточно часто мы можем вставить на все страницы какую-то общую
Включить внешние файлы -> Исключить из объединения файлы -> список файлов через пробел
Зафиксированы случаи, когда в силу ряда причин (отсутствия корректной поддержки GDLib на хостинге, ограничениях по памяти и т. д.) попытка создания CSS
CSS Sprites -> Применить CSS Sprites -> нет
При желании CSS
В этом случае может помочь простое отключение
CSS Sprites -> Исключить IE 6 (через хаки) из процесса создания CSS Sprites -> да
Также возможно, что IE 6 некорректно обрабатывает объединение стилей (и наложение фона вместе с рядом других хаков). Тогда может помочь отключение data:URI:
Data:URI -> Применить data:URI -> нет
или вообще объединения CSS-файлов:
Настройки сжатия -> Минимизировать и объединить CSS-файлы -> нет
Web Optimizer может быть установлен в произвольную директорию (внутри сайта) и защищен с помощью пароля через htpasswd. Для этого нужно включить:
Использование .htaccess -> Защитить установку Веб Оптимизатора с помощью htpasswd -> да
При этом нужно убедиться, что директории кэширования расположеы вне папки с самим Web Optimizer (иначе все развалится для всех посетителей сайта, кроме вас самих).
Web Optimizer может быть использован для любого сайта, для которого доступен PHP. Если у вас уже есть статический сайт, то вы можете подключить вызов Web Optimizer в самом верху каждой страницы (или index.php):
<?php require(/путь/к/Web/Optimizer/ web.optimizer.php); ?> и затем в самом низу страницы: <?php $web_optimizer->finish(); ?>
Поскольку в плановом режиме (после создания всех кэширующих файлов) выполнение логики Web Optimizer занимает 5-10 мс, на серверную сторону загрузки это не повлияет, зато клиентская будет существенно ускорена. Только надо убедиться, что те страницы, на которые вы добавите вызовы Web Optimizer, будут обрабатываться через PHP-интерпретатор (будут иметь расширение .php или какое-либо другое, определяемое настройками сервера).
Уже сейчас Web Optimizer может быть встроен в схему публикации произвольного сайта в
"статическом" режиме. Для этого необходимо открыть все страницы сайта с установленным
Web Optimizer, а потом просто скопировать выведенный HTML и кэширующие директории.
Предположим, что Web Optimizer установлен на dev.site.ru. Запустив, например, wget:
wget -d -r -c http://dev.site.ru/
мы получим оптимизированный "слепок" сайта, который можно загрузить уже в рабочую систему.
Как уже было описано выше, Web Optimizer может "слеить" весь выводимый HTML в одну строку. Для этого нужно включить
Настройки сжатия -> Сжать HTML до 1 строки -> да Настройки сжатия -> Удалить HTML-комментарии -> да
Стоит сразу отметить, что данные настройки создают дополнитель-
ную нагрузку для сервера (корректное регулярное выражение достаточно
ресурсоемко) и могут привести к вырезанию некоторого JavaScript-кода
(который вставляется через комментарии). Заметим также, что код внут-
ри < script >
, <textarea>
, <pre>
изменяться не будет (в соответствии со
спецификацией), поэтому использовать данные настройки нужно с боль-
шой осторожностью.
Сервис smush.it разработан инженерами Yahoo! и GoogLe и позволяет оптимизировать размер фоновых изображений в автоматическом режиме. Подключить оптимизацию изображений можно через библиотеку CSS
<?php
require('/полный/путь/до/css.sprites.php');
$smushit = new css_sprites();
$smushit->smushit('/полный/путь/до/изображения');
?>
В результате вместо изображения (при наличии прав на его изменение) мы получим его оптимизированную копию. Процедуру лучше проводить не на группе рабочих изображений, а на их копиях, чтобы была возможность откатить изменения.
После многочисленных установок Web Optimizer (http://www.web-optimizer.ru/) на JoomLa! (http://joomLa.org/, как версии 1.0, так и 1.5) было решено собрать воедино полезное знание о возникающих проблемах (связанных в основном с текущим некорректным серверным окружением), чтобы позволить их самостоятельно решить большому числу пользователей.
Итак, давайте разбираться по порядку, что нам делать в следующих случаях.
Довольно часто приходится разбираться с тем, работает ли 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 сможет самостоятельно произвести все необходимые изменения.
Если нужно получить информацию о необходимых изменениях
исходных файлов /index.php:
Изменение /index.php -> Включить автозапись -> Нет
и на последнем шаге зайти на вкладку "Необходимые изменения".
Обычно это связано с двойным сжатием HTML-документа. Одно из сжатий может быть наложено самим Web Optimizer, а второе — как используемой системой управления сайтом, так и сервером.
Чтобы снять одно из накладываемых сжатий, можно отключить его либо в
Настройки архивирования — Применить gzip для HTML — Нет
Основная проблема возникновения белого экрана
(превышение лимита памяти при создании CSS
Также стоит заглянуть в логи ошибок вашего сервера, чтобы узнать, что привело к такому состоянию. Обычно это помогает решить проблему.
В некоторых случаях белый экран возникает из-за некорректной установки приложения либо двойного сжатия. Как решить эти проблемы, описано чуть выше.
Если все приведенные шаги не принесли результата, то можно попробовать отключить
часть настроек Web Optimizer, чтобы понять, какие вещи ваш сервер может выполнить
самостоятельно. Начать стоит с корневого набора ("Настройки сжатия" и "Настройки архивирования")
для всех трех групп (CSS, JavaScript, HTML) действий по оптимизации и двигаться в сторону подключения
более детальных параметров (например, "Включить внешние файлы", ""Вечное" кэширование" или "CSS
Это может быть причиной различных проблем, но для начала можно попробовать отключить CSS
CSS Sprites - Применить CSS Sprites - Нет
затем, если это не помогло
ситуации, можно отключить data:URI:
Data:URI - Применить data:URI - Нет
После этих шагов все подключаемые CSS-файлы не будут обрабатываться через CSS Tidy, а будут только объединяться (и будет выполняться первичная минимизация).
Если и после этого внешний вид сайта "разъехался", то стоит отклю- чить объединение стилей внутри <head>:
Включить внешние файлы - Включить объединение внешних CSS-файлов - Нет
или вообще минимизацию для CSS-файлов:
Настройки сжатия - Минимизировать и объединить CSS-файлы - Нет
Если есть желание разобраться в возникшей проблеме более детально, то можно при отключенном объединении стилей внутри <head> попробовать исключить файлы один за другим при помощи следующей настройки:
Включить внешние файлы - Исключить из объединения файлы - Список файлов через пробел
найти тот файл (или те файлы), которые обрабатываются некорректно,
привести их к стандартному состоянию при помощи
В некоторых случаях проблемы после установки Web Optimizer сводятся к тому, что некоторые фоновые изображения пропадают или "портятся". Для устранения этого набора проблем необходимо установить, с какими первоначальными фоновыми изображениями возникают трудности (используя любые средства для отладки верстки), и исключить эти изображения из процесса создания CSS
CSS Sprites — Исключить из CSS Sprites файлы — Список файлов через пробел
Если данная мера не приносит результата, то CSS
CSS Sprites — Применить CSS Sprites — Нет
Обычно это сводится к тому, что часть клиентской логики перестает отрабатывать. Нужно хорошо понимать, что если, например, форма для ввода комментариев у вас на сайте выводится при помощи JavaScript и после Web Optimizer она перестала выводиться, то это проблемы не внешнего вида, а клиентской логики.
Для локализации проблемы с клиентской логикой рекомендуется попробовать отключить минимизацию JavaScript-файлов:
Настройки сжатия — Минимизировать и объединить JavaScript-файлы — Нет
а потом (при сохранении проблемы) попробовать исключить один за другим отдельные файлы:
Включить внешние файлы - Исключить из объединения файлы - Список файлов через пробел
При установлении имени файла, на котором объединение отказывает, можно просто его исключить из общего пакета либо попытаться настроить его корректное включение в первоначальную логику (обычно ошибки происходят из-за некорректного синтаксиса исходных методов и библиотек, которые не конфликтуют внутри одного окружения-файла, но начинают конфликтовать при объединении этих окружений).
Иногда возникают проблемы с отображением и функционированием сайта у всех пользователей, хотя у владельца сайта (в его браузере) при этом все хорошо. Если диагноз проблемы звучит подобным образом, то нужно проверить, по какому адресу находятся директории кэширования, сам Web Optimizer и включена ли защита Web Optimizer от внешнего доступа:
Использование .htaccess - Защитить установку Веб Оптимизатора с помощью htpasswd - Да
В этом случае директории кэширования нужно вынести из папки самого Web Optimizer (например, в корневую директорию cache, доступную на запись для веб-сервера) либо отключить защиту приложе ния:
Использование .htaccess - Защитить установку Веб Оптимизатора с помощью htpasswd - Нет
Если требуется включить несколько параллельных хостов для ускорения загрузки статических ресурсов, то стоит выполнить следующие действия:
ServerAlias i1.site.ru ServerAlias i2.site.ru
site.ru/images/my.png ) и попробовать его открыть через все
дополнительные хосты ( i1.site.ru/images/my.png ). При наличии
каких-либо проблем необходимо повторить предыдущие шаги.Множественные хосты - Доступные хосты - Название хостов через пробел
и включить поддержку множественных хостов:
Множественные хосты - Включить параллельные хосты, например, i1 i2 - Да
Web Optimizer автоматически проверяет несколько наиболее распространенных хостов, и последняя настройка может и не потребоваться.
После описанных действий все изображения на сайте будут отдаваться через несколько хостов, что существенно ускорит загрузку каждой страницы.
Web Optimizer автоматически проверяет все введенные хосты на доступность, чтобы быть уверенным, что их можно использовать для параллельных загрузок. Вы можете отключить данную проверку (если в силу каких-либо причин она производится некорректно):
Множественные хосты - Автоматически проверять доступность хостов - Нет
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.