CakePHP, связывающий CSS-файлы и файлы JavaScript - PullRequest
6 голосов
/ 27 июля 2011

Как вы связываете css-файлы и javascript / jquery-файлы с контроллером / представлением ??

Я использую CakePHP_1.3 и обнаружил в сети следующий код, но не могу понять, гдеположить это, а во-вторых, где разместить файл CSS с именем css_file.

<?php $this->Html->css("css_file", null, array("inline"=>false)); ?>

Любая помощь оценили, ребята ...

Ответы [ 3 ]

14 голосов
/ 27 июля 2011

Вы бы поместили файл CSS в:

app/
  webroot/
      css/ <-- here

Вы бы поместили строку кода в ваш default.ctp макет.Это находится в (1.3):

cake/
  libs/
      view/
        layouts/
          default.ctp <-- copy this to app/views/layouts/

Затем откройте это app/views/layouts/default.ctp и посмотрите на HTML.Вы увидите, где Cake уже использует эту команду.Просто замените имя файла на файл, который вы добавили. не добавьте .css в конец при добавлении строки кода.

8 голосов
/ 27 июля 2011

вы используете echo $this->Html->css('css_file_name_without_the_extension'); и echo $this->Html->script('same') в представлении

5 голосов
/ 29 июля 2011

Исходя из вашего вопроса, звучит так, как будто вы спрашивали, как это сделать для каждого отдельного просмотра.

Здесь $scripts_for_layout пригодится.

Выпросто убедитесь, что он указан в вашем теге <head> в /app/views/layouts/default.ctp как <?php echo $scripts_for_layout; ?>

Затем вы можете буквально добавить код, включенный в ваш вопрос, в любое из ваших представлений, буквально в любой точкетебе нравится.Поскольку у вас есть 'inline' => false, он фактически не появится в этой позиции в представлении:

<?php $this->Html->css("css_file", null, array("inline"=>false)); ?>

... и вы обнаружите, что css_file.css автоматически связывается в вашем <head> всякий раз, когда этоконкретный вид загружен.Это отличный способ загружать определенные CSS-файлы только для отдельных видов, когда они необходимы, но убедитесь, что они отображаются в теге <head> там, где они должны быть.

Это также работает для JavaScriptследующим образом:

<?php $this->Html->script("js_file", null, array("inline"=>false)); ?>

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

<?php echo $html->css(array('each','one','of','your','css','files'));

Или, опять же, для JavaScript:

<?php echo $html->script(array('each','one','of','your','js','files'));

Не включайте расширение .css или .js в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...