проблемы с css combiner? - PullRequest
       9

проблемы с css combiner?

1 голос
/ 28 февраля 2011

Я работаю с пользовательским фреймворком.

Когда я проектирую свои сайты, я разделяю правила 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) Затем делать то, что я хочу с минимизированным содержанием?

Одна из полезных вещей, которые я увидел, - способность переписывать пути?

1 Ответ

1 голос
/ 28 февраля 2011

Ну, это может зависеть от того, как вы комбинируете таблицы стилей.Я не уверен, как ваш фреймворк объединяет файлы CSS (по имени, по папке или вручную), но браузеры (я не знаю о IE) интерпретируют каждую строку буквально, даже если она избыточна:

#foo
{
  color: red;
  color: green;
  color: blue; /* This one will be the actual color of #foo */
}

Все они выполняются, поэтому последний из них должен быть интерпретирован.Если вы переопределите стили в разных таблицах стилей (я обычно использую globals.css, header.css и body.css), последний из них вступит в силу, что может сделать ваш сайт в стиле фанк.

Я думаюэта же концепция применима и к JavaScript, но я еще не сталкивался с переопределением функций.

...