Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как правильно минимизировать css с помощью php
Покинул форум
Сообщений всего: 139
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
Есть набор css фалов разбитых, скажем по-категориям, для удобства.
Есть задача: выводить все css файлы в одном.
Пытался так брать все css файлы из папки
Покинул форум
Сообщений всего: 139
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
etoYA пишет:
http://htmlbook.ru/css/import
точно, точно, спасибо
IllusionMH
Отправлено: 03 Сентября, 2013 - 17:27:29
Активный участник
Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011 Откуда: .kh.ua
Помог: 242 раз(а)
etoYA, вот не нужно использовать @import т.к. это замедляет загрузку страницы. Synov_son, лучше загуглить php css minification
esterio
Отправлено: 03 Сентября, 2013 - 17:32:16
Активный участник
Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012 Откуда: Украина, Львов
Помог: 127 раз(а)
А зачем все ети костили. Блин первый раз погрузиться дольше, ну а кеш в браузере то за чем придумали. Нет нужно же каждый раз нагружать ядро ПХП для поиска файлов и склеивания их в одно целое. Я понимаю если бы еще хидер для кеширования ишел. Но в Вашем примере только одни минуса
Synov_son
Отправлено: 03 Сентября, 2013 - 17:53:15
Частый гость
Покинул форум
Сообщений всего: 139
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
esterio пишет:
А зачем все ети костили. Блин первый раз погрузиться дольше, ну а кеш в браузере то за чем придумали. Нет нужно же каждый раз нагружать ядро ПХП для поиска файлов и склеивания их в одно целое. Я понимаю если бы еще хидер для кеширования ишел. Но в Вашем примере только одни минуса
Я же говорю, есть задача, зачем, то совсем другое дело. (Добавление)
IllusionMH пишет:
etoYA, вот не нужно использовать @import т.к. это замедляет загрузку страницы. Synov_son, лучше загуглить php css minification
Гуглил нашел только скрипты удаления пробелов, преобразования в одну строку и т.д.
Знаю что замедляет, но не могу додуматься до альтернативы.
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
1. @import - не подходит для решения задачи. т.к. файлы по-прежнему грузятся по-одному. Количество запросов к серверу не уменьшается.
2. ваш скрипт можно переписать так
Но запускать php-процесс на каждый вызов стилей - не комильфо. Нужно разрулить на уровне индейца. Пусть проверяет, существует ли результирующий файл, и отдает либо его, либо запускает пых.
3. Из второго пункта следует вывод - лучше пережимать файлы перед выкладкой на сервер. Т.е. Выкладывать уже готовые, сжатые. Для этого подойдет любой онлайн-сервис минификации, или десктопная программа.
4. Лучше всего с этим справится sass-препроцессор с опцией "compressed"
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
и каков профит от таких шевелений?
поддержу естерио
препроцессор хорош если каша из файлов
нет?
DelphinPRO
Отправлено: 03 Сентября, 2013 - 23:56:06
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
LIME пишет:
и каков профит от таких шевелений?
ну у меня рабочая станция настроена ) на ней есть установленный ruby\sass. Есть заготовка для новых проектов. Копирнул заготовку в рабочую папку, запустил слежение в sass и спокойно работаешь\верстаешь. В sass-файлах директива @import именно внедряет вызываемый файл в вызывающий. Стили в sass-файлах раскиданы по логическим группам, а на выходе автоматом получаем единый минифицированный CSS. Без всяких заморочек.
----- Чем больше узнаю, тем больше я не знаю.
Мелкий
Отправлено: 04 Сентября, 2013 - 09:30:49
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
LIME пишет:
и каков профит от таких шевелений?
1 запрос на 10кб значительно дешевле 10 запросов по 1кб.
Если добавить gzip static (всё равно же процессить css, шагом меньше, шагом больше - какая разница?) - профит налицо.
Экономия времени на загрузку, экономия трафика, экономия ресурсов сервера.
При сохранении удобства разработки и разбиения несвязанных между собой css на разные файлы. Плюс препроцессор может давать свои плюшки, вроде автоматической подстановки префиксов вендорных свойств - в профите невозможность что-то забыть описать и более чистый исходный код.
----- PostgreSQL DBA
LIME
Отправлено: 04 Сентября, 2013 - 09:42:22
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
Мелкий пишет:
1 запрос на 10кб значительно дешевле 10 запросов по 1кб.
только при первом обращении
Zuldek
Отправлено: 04 Сентября, 2013 - 09:56:39
Постоянный участник
Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010
Помог: 50 раз(а)
Не понимаю для какого удобства держать 10 css файлов, а не один и склеивать их каждый раз пыхой... .
Если для удобства редактирования этих css файлов, — то это проблема рук, а не поставленная задача.
DelphinPRO
Отправлено: 04 Сентября, 2013 - 10:03:47
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
LIME пишет:
только при первом обращении
Умножим на количество посетителей.
----- Чем больше узнаю, тем больше я не знаю.
avtor.fox
Отправлено: 04 Сентября, 2013 - 10:07:10
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
Zuldek пишет:
Не понимаю для какого удобства держать 10 css файлов
Сталкивался с таким, что (не) каждая страница сайта должна быть уникальной. В данном случае хранить все стили в одном не кошерно. Да и вообще, копаться в тысячах строк отвратительно. А так открыл нужный стиль, изменил что-нибудь и вуаля.
Synov_son
Отправлено: 04 Сентября, 2013 - 10:55:32
Частый гость
Покинул форум
Сообщений всего: 139
Дата рег-ции: Авг. 2013
Помог: 0 раз(а)
avtor.fox пишет:
Zuldek пишет:
Не понимаю для какого удобства держать 10 css файлов
Сталкивался с таким, что (не) каждая страница сайта должна быть уникальной. В данном случае хранить все стили в одном не кошерно. Да и вообще, копаться в тысячах строк отвратительно. А так открыл нужный стиль, изменил что-нибудь и вуаля.
Для удобства создания и редактирования новых шаблонов для своего движка, например на этом сайте будут другие цвета - идем в colors.css, а тут будут другие размеры - идем в sizes.css. А теперь все же к делу. Как их правильно склеить: может создания файла на лету и использование его как и обычно. Или есть все же способ заставить работать
3. Из второго пункта следует вывод - лучше пережимать файлы перед выкладкой на сервер. Т.е. Выкладывать уже готовые, сжатые. Для этого подойдет любой онлайн-сервис минификации, или десктопная программа.
4. Лучше всего с этим справится sass-препроцессор с опцией "compressed"
Думаю, так действительно лучше. Просто хотел, что бы не случалось, что вроде и отредактировал файлы, а забыл перезаписать результирующий файл. Вообще такая идея пришла, когда редактировал сайт заказчику, там стояла джумла и шаблон написанный с использованием ооп (в настройках можно было редактировать цвета и размеры). Так при
inspect element браузером показывался только один файл стилей типа css.php?id=14&file=default (Добавление)
Попробую все же создавать результирующий файл и проверять не только его существование но и брать размер всех файлов css и умножать на коэффициент, который будет давать сжатие и если размеры не будут соответствовать то перезапись файла
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.