Актульнаый релиз „DataLife Engine 19.0 Final“ buildid 109

подробнее о релизе

Объединение CSS файлов на DLE

25 декабря 2025 | 10:12 | Четверг
60
2
[ Рейтинг: 5 / Голосов: 1 ]
Объединение CSS файлов на DLE

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

Для тех кто следит за актуальными релизами DLE должен был заметить такой пункт в релизе DLE 19.0:

41. Из скрипта было убрано сжатие JS и CSS файлов при помощи PHP. Данная функция глобально устарела и использование PHP в актуальных реалиях не эффективно. Для сжатия статических файлов мы рекомендуем включать для этого сжатие файлов серверными средствами, например в Nginx. Это более эффективно, работает быстрее и потребляет намного меньше серверных ресурсов.

Думаете что это сделано просто так? Вот и нет. Данный вариант оптимизации сайта ранее был рекомендован гугл, и при тестировании Google PageSpeed Insights была рекомендация, что для уменьшения запросов к сайту рекомендуется объединять все CSS и JS файлы в один… НО! Эти времена уже прошли, и в 2025 году данный способ оптимизации больше не актуален. Наоборот. Рекомендуется в секцию head разместить CSS файл со стилями, которые отвечают за самый верх сайта для более быстрой генерации сайта, а все остальные стили — можно разместить уже внизу, перед закрывающим тегом body. И на последок немного копипаста на эту тему…

Подход «разделяй и властвуй» для CSS/JS сейчас считается лучшей практикой, и вот основные причины, почему не стоит слепо объединять все файлы в один, а лучше разбивать на модули:

1. Кэширование и обновления
— Проблема объединения: При изменении даже одной строки кода у пользователя инвалидируется кэш всего огромного объединенного файла, и он качается заново целиком.
— Преимущество разделения: Меняется только тот модуль, который был обновлен. Пользователь перекачивает 2-3 КБ вместо 200 КБ.

2. Загрузка по необходимости (Code Splitting)
— Ленивая загрузка: Зачем грузить CSS для админ-панели обычному пользователю? Или JS для страницы оплаты на главной?
— Модульность: Современные сборщики (Webpack, Vite) позволяют динамически подгружать код только когда он нужен.

3. Параллельная загрузка
Современные браузеры могут загружать до 6-8 файлов параллельно с одного домена. Несколько мелких файлов могут загружаться быстрее, чем один большой (особенно с HTTP/2).

4. HTTP/2 и мультиплексирование
— HTTP/1.1: Каждый файл — отдельное соединение (отсюда и совет объединять).
— **HTTP/2+: ** Множество файлов передаются в рамках одного соединения параллельно без оверхеда. Объединение теряет смысл и даже вредит.

5. Разделение ответственности
— Поддержка: Легче найти стили конкретного компонента в `component/button.css`, чем в 5000-строчном `all.css`.
— Работа в команде: Меньше конфликтов в Git, разные разработчики могут работать над разными модулями.

6. Tree Shaking
Современные сборщики могут удалять неиспользуемый код. Если у вас монолитный файл, невозможно определить, какие части действительно нужны для конкретной страницы.

7. Приоритизация загрузки
Вы можете контролировать порядок и приоритет:
<!-- Критический CSS сразу в head -->
<style>/* above-the-fold styles */</style>

<!-- Остальное асинхронно -->
<link rel="preload" href="styles.css" as="style" onload="this.rel='stylesheet'">

Когда объединение всё же нужно:

1. Для старых браузеров без поддержки HTTP/2
2. Очень мелких файлов (если их десятки, иногда лучше объединить)
3. Критического CSS для первой отрисовки (но это отдельная история)

Современный подход:
1. Разделение на компоненты/модули
2. Сборка через Webpack/Vite/Parcel
3. Автоматическая оптимизация:
— Code splitting по страницам/роутам
— Tree shaking
— Ленивая загрузка
— Preload/Prefetch для критических ресурсов

Итог: Не объединяйте вручную. Используйте современные сборщики, которые сделают интеллектуальное разделение и объединение там, где это действительно нужно для производительности.

Вывод: не нужно объединять абсолютно все файлы в один без раздумий, не зря в последнем актуальном релизе DLE 19.0 был удалён скрипт минификатора и объединения всех файлов по типу в один.

PS кстати, аналогично данной теме и не рекомендуется больше минимизировать весь HTML код страницы, т. к. это на современных устройствах усложняет генерацию страницы, но это уже другая тема…

Комментарии:
ℹ️
 
  1. okdaa 9 января 2026 07:16
    okdaa

    Так и не понял, есть ли смысл делать под старые версии? например DLE 16.1 - 17.0?

    1. byroot AdMin 9 января 2026 16:26
      byroot

      Нет. При любой версии dle так делать не стоит больше. Это не от версии дле зависит!

      --------------------
      🎬🎬🎬 Мои услуги по DLE 👉👉👉 https://byroot.ru/uslugi.html 🎬🎬🎬
Модули для создания киносайта и не только на базе DataLife Engine, и многое другое...
Просто блог Евгения Попова, он же - byroot © 2015-2026 | Карта сайта