Настраиваем подключение минифицированных версий файлов (script.min.js) вместо полных
Дата публикации: 24.06.2026

Настраиваем подключение минифицированных версий файлов (script.min.js) вместо полных

Хочу себе такие же кнопки
ccb9a536

Что вы получите сразу же

  • Понимание, почему минифицированные файлы ускоряют работу сайта на 1риксе.
  • Навыки изменения настроек шаблона и компонентов, чтобы браузер подгружал *.min.js вместо обычных *.js.
  • Умение проверять, что всё работает корректно, и откатывать изменения, если возникнут конфликты.

Почему именно минификация важна

Показатель Обычный файл Минифицированный файл
Размер 150 KB 45 KB
Время загрузки (при 2 Mbps) 0,6 с 0,18 с
Количество запросов 1 1 (но же)
Возможные ошибки Нет Нет (если правильно собран)

Минификация — это «сжатие» кода без потери функциональности: удаляются пробелы, комментарии, сокращаются имена переменных. Браузер получает меньше данных, а значит, быстрее отрисовывает страницу. На сайте с большим трафиком это экономит десятки мегабайт в час и улучшает Core Web Vitals.


Где находятся файлы скриптов в 1С‑Битриксе

  1. Корневой каталог шаблона/.default/templates/.default/js/.
  2. Папка компонентов/.default/components/имя_компонента/js/.
  3. Библиотеки ядра/.default/bitrix/js/.

Все они могут иметь две версии: script.js и script.min.js. По умолчанию система подгружает «полную» версию, потому что она гарантирует совместимость с отладчиком.


Как заставить Битрикс использовать минифицированные файлы

1. Глобальная настройка в php_interface/init.php

<?php
// Отключаем отладочный режим скриптов
define('BX_COMPRESS_JS', true);
define('BX_COMPRESS_CSS', true);
?>
  • BX_COMPRESS_JS – при true система ищет файлы с суффиксом .min.js.
  • BX_COMPRESS_CSS – аналогично для стилей.

Важно: После изменения этого файла очистите кеш (см. ниже).

2. Переопределение в шаблоне

Если нужно включить минификацию только для отдельного шаблона:

<?php
if (COption::GetOptionString("main", "js_compression", "N") === "Y") {
    $APPLICATION->AddHeadScript("/local/templates/.default/js/script.min.js");
} else {
    $APPLICATION->AddHeadScript("/local/templates/.default/js/script.js");
}
?>

Здесь мы вручную указываем, какой файл подключать. Можно обернуть в условие, проверяющее наличие минифицированной версии (file_exists).

3. Настройка компонентов

Многие компоненты используют метод CComponent::addExternalJS. Чтобы переопределить путь, откройте файл component.php компонента и замените:

$this->addExternalJS("/bitrix/components/bitrix/news/js/script.js");

на

$this->addExternalJS("/bitrix/components/bitrix/news/js/script.min.js");

Если компонент поддерживает параметр COMPRESS_JS, просто задайте его в вызове компонента:

$APPLICATION->IncludeComponent(
    "bitrix:news",
    "",
    array(
        "COMPRESS_JS" => "Y",
        // …
    )
);

4. Автоматическое переключение через .htaccess

Можно добавить правило, которое будет отдавать минифицированный файл, если он существует:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.min.js -f
RewriteRule ^(.+)\.js$ $1.js.min [L]

Это работает на уровне веб‑сервера и не требует изменения PHP‑кода, но помните, что в некоторых случаях кэширование может «запомнить» старый путь. После правки .htaccess перезапустите Apache/Nginx.


Как проверить, что всё работает

  1. Инструменты браузера – откройте «Network», отфильтруйте по «JS». Вы должны видеть файлы с .min.js.
  2. Консоль – выполните console.log('test') в месте, где в скрипте выводится сообщение. Если консоль пустая, значит скрипт не загрузился.
  3. Тестовый запрос к API – если ваш скрипт делает AJAX‑запрос, проверьте статус 200.

Если что‑то пошло не так, отключите BX_COMPRESS_JS и проверьте, появляется ли оригинальный файл. Это быстро покажет, где именно возник конфликт.


Как избежать типичных ошибок

Ошибка Причина Как исправить
404 Not Found Минифицированный файл отсутствует в нужной папке Сгенерировать минифицированную версию (см. ниже) и разместить рядом с оригиналом
JS‑ошибки в консоли Минификация «сломала» код из‑за использованных глобальных переменных Использовать инструменты сборки (Webpack, Gulp) с параметром preserveComments: false и mangle: true
Кеширование старой версии Браузер хранит старый файл в кеше Добавьте параметр версии к URL: script.min.js?ver=20230624
Конфликт с отладчиком В режиме debug Битрикс игнорирует минификацию Отключите debug в bitrix/.settings.php ('debug' => false)

Как быстро получить минифицированные файлы

  1. Встроенный механизм – в админке «Настройки → Инструменты → Минификация CSS/JS». Включите галочку, система автоматически создаст .min файлы.
  2. Сборщик Gulp
const gulp = require('gulp');
const uglify = require('gulp-uglify');

gulp.task('minify-js', () => {
    return gulp.src('local/templates/.default/js/*.js')
        .pipe(uglify())
        .pipe(gulp.dest('local/templates/.default/js/'));
});

Запустите gulp minify-js, и в той же папке появятся файлы с суффиксом .min.js.

  1. Онлайн‑сервисы – если нужен один‑разовый минификатор, используйте jscompress.com (добавьте rel="nofollow").

Очистка кеша после изменений

  • Через админку → «Настройки → Настройки продукта → Кеширование» → «Очистить кеш».
  • Через командную строку (если у вас доступ к серверу):
php /path/to/bitrix/modules/main/tools/clear_cache.php

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


Лучшие практики

  • Храните обе версии (.js и .min.js) в репозитории – так отладка будет проще.
  • Не минифицируйте файлы, содержащие eval или динамический import(), иначе может возникнуть ошибка.
  • Проверяйте совместимость с PHP‑модулями, которые могут динамически генерировать JS (например, ajax‑компоненты).
  • Регулярно обновляйте минифицированные файлы после каждого релиза, чтобы не оставать старый код в продакшене.

Практика для закрепления

  1. Включите глобальную минификацию в php_interface/init.php. Очистите кеш и покажите в инструментах браузера, что загружается script.min.js.
  2. Создайте правило в .htaccess, которое будет отдавать минифицированный файл, если он существует. Проверьте работу на примере myfile.js.
  3. Сгенерируйте минифицированную версию собственного скрипта custom.js с помощью Gulp. Подключите её в шаблоне через $APPLICATION->AddHeadScript.
  4. Отладьте конфликт: после включения минификации один из компонентов перестал работать. Найдите причину (например, отсутствие script.min.js) и исправьте её, добавив условие file_exists.
  5. Сравните время загрузки до и после минификации с помощью Chrome DevTools (вкладка «Network», колонка «Time»). Запишите разницу в миллисекундах и объясните, почему она возникла.

Полезные ссылки

  • VDSina хостинг{:rel="nofollow"} – быстрый и надёжный сервер для размещения вашего сайта на Битриксе.

С этими знаниями вы сможете существенно ускорить работу сайта, сократить нагрузку на сервер и улучшить пользовательский опыт. Удачной оптимизации!


CamZamZam - онлайн фото с вебкамеры с эффектами
Cartoon Network: игры с персонажами
Чат рулетка в 2026: будущие функции
Эксперт по доменным стратегическим решениям
Хостинг для e-commerce проектов
Как играть в слоты
Как настроить CDN для сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как оптимизировать производительность сайта с хостингом Host.bg
Как выбрать правильный хостинг для вашего сайта
Какие бывают ЛОР болезни у детей
Кассовые терминалы с оплатой картами
LOL куклы витрина детская
Лучшие видеорегистраторы для водителей
Онлайн QR-код сканер
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Основы настройки веб-хостинга: что вам нужно знать
Партнёрская программа без блога: как получать трафик из Telegram
Профессиональные хитрости для пользователей хостинга Host.bg
Регистрация ИП в Москве для иностранных граждан
Сравнение хостинга Host.bg с другими провайдерами
Субтитры — нет, уши — включены: погружение в английский за 5 минут
Сумки с бусинами
Техника для строительства загородных трасс
ТОП-10 VPS для разработчика: рейтинг серверов под рабочие задачи
WordPress блог для бизнеса
рейтинг хостингов 2026 Быстрые VDS серверы