Я работаю с пользовательским фреймворком.
Когда я проектирую свои сайты, я разделяю правила CSS на несколько файлов, например
- typography.css
- links.css
- master.css
- tables.css
- и т.д.
Теперь очевидная проблема заключается в том, что это означает несколько http-запросов.
Как я уже говорил, я работаю с пользовательской платформой.
В этой структуре для включения файла CSS вы просто вызываете
echo load::css('name');
echo load::css('another');
который выплюнет
<link rel="stylesheet" type="text/css" href="http://site.com/name.css">
<link rel="stylesheet" type="text/css" href="http://site.com/another.css">
Теперь я думаю о том, чтобы позвонить
load::css('name');
echo load::css('another');
как видите, я вызываю эхо только на последнем,
это выдаст
<link rel="stylesheet" type="text/css" href="http://site.com/combined/0df4899f90fe7be26f4893b1a4a30eb6.css">
0df4899f90fe7be26f4893b1a4a30eb6 == «назови другого» * 1033 *
Так в основном,
при вызове load:css('something')
он сохранит имя в массиве, вернет тег ссылки со значением md5(implode(' ', $cssArray))
в конце обработки сценариев php, а затем фактически создаст объединенный файл с md5 Имя (если оно не существует).
Это означает, что на сервер делается только один запрос для всего содержимого CSS.
Может кто-нибудь увидеть какие-либо потенциальные проблемы с этим подходом?
Я также планирую реализовать это для файлов JavaScript.
Могли бы я столкнуться с какими-либо проблемами, если бы мне пришлось также использовать компрессор css / js?
<ч />
Google Minify?
После некоторых исследований я наткнулся на Google Minify.
Можно ли изменить это так, чтобы вы могли просто дать ему массив путей к css-файлам и заставить его выплевывать содержимое, чтобы я мог вызвать что-то вроде
$css = minify::css($cssArray)
Затем делать то, что я хочу с минимизированным содержанием?
Одна из полезных вещей, которые я увидел, - способность переписывать пути?