Во-первых, разберитесь с обслуживанием динамического CSS. Мой сайт имеет контроллер под названием «ресурс», который позволяет мне обслуживать CSS, JS и т. Д. (Возможно, изображения в будущем). Он загружает представления на основе сегментов, переданных ему в URL.
Итак, когда запрашивается http://mysite.com/resource/css/main.css
:
- Мой
Resource
контроллер (.../controllers/resource
) обрабатывает любые особенности обработки данных (как в общем случае с контроллером MVC). Затем он загружает:
- Общее представление:
".../views/resources/css.php"
, передавая ему имя нужного файла CSS. Это представление распечатывает заголовок с указанием Content-Type (важно!) И любых других общих вещей. Затем он переходит к загрузке:
- Указан фактический файл CSS, здесь
".../views/resources/css/main.css.php"
.
Это немного излишне, но обеспечивает большую гибкость, как будто вы говорите так, как вам нужно.
Контроллер:
...
$segments = $this->uri->segment_array();
array_shift($segments); // remove the first two
array_shift($segments);
$content['stylesheet'] = $segments[0] . ".php"; //e.g. main.css.php
$content['data'] = array(); //Font data, etc
$this->load->view('resources/css.php', $content);
..
Общие ресурсы / css.php
Это загружает фактическую таблицу стилей .css.php
<?php header("Content-Type: text/css"); // This is key! ?>
/* MySite CSS File (c) 2011 bla bla */
<?php
$this->load->view("resources/css/$stylesheet", $data);
echo "\n";
?>
Специальные ресурсы / css / main.css.php
<?php echo "/* I can use PHP in my CSS! */\n"; ?>
body { background-color: <?=$data['bg_color']?>; }
p { font-family: <?=$data['p_font_fam'];?>; }