CakePHP - включить CSS на основе определенных страниц? - PullRequest
7 голосов
/ 29 марта 2011

Я хочу включить определенный файл CSS, который должен быть применен к домашней странице, и 6-7 других страниц по всему моему сайту.

Я знаю, что могу сделать это через PHP, получая URL-адрес, узнавая, какую страницу, связывая css ... и т. Д., Но мне было интересно, есть ли хитрый способ (или любой другой лучший способ) использовать CakePHP для включения правильный файл (ы) CSS.

Я понимаю, что могу связать файл CSS из определенных представлений, но - тогда они не будут в <head>. Есть ли способ связать вид и показать его в голове?

Я надеюсь, что мои вопросы имеют смысл, и очень ценю любую помощь.

Ответы [ 4 ]

19 голосов
/ 29 марта 2011

Я понимаю, что могу связать файл CSS из определенных представлений, но - тогда они не будут в <head>.Есть ли способ связать вид и показать его в голове?

Да, они были бы в голове.См. Документацию HTML Helper :

Если для ключа 'inline' задано значение false в параметре $ options, теги ссылки добавляются в переменную $ scripts_for_layout, которую вы можете распечатать внутритег head документа.

Итак, этот фрагмент на ваш взгляд ...

$this->Html->css('my-css', null, array('inline' => false));

... добавит соответствующий элемент <link> к вашему <head>.

0 голосов
/ 29 марта 2011

Вы также можете иметь разные макеты и включать в них css:

http://book.cakephp.org/view/1080/Layouts#!/view/1080/Layouts

Это удобно, если все виды модели имеют одинаковые css или скрипт.

0 голосов
/ 29 марта 2011

Это не ответ на ваш вопрос, но ... вы можете запрограммировать собственную инъекцию для файла макета.Проблема с $ scripts_for_layout заключается в том, что коды js и css вставляются в заголовок.Если вы пишете свою собственную реализацию, вы можете поместить переменную $ scripts_for_layout (для js) в конец файла макета.Кий это: разделение ...

0 голосов
/ 29 марта 2011

Проверьте этот маленький учебник:

http://nuts -and-bolts-of-cakephp.com / 2008/05/05 / CSS-файлов-и-scripts_for_layout /

По сути, вы можете использовать этот стандартный атрибут представления $ scripts_for_layout для внедрения CSS-файлов на основе представления. Надеюсь, это то, что вы ищете. Я подумал о нескольких других сумасшедших вариантах, связанных с разбором расширений, но это, вероятно, было бы более громоздким, чем просто ручное связывание таблиц стилей. Я думаю, что эта ссылка описывает лучшее решение.

...