CakePHP链接css文件和javascript文件

时间:2011-07-27 17:30:23

标签: cakephp

如何将css文件和javascript / jquery文件链接到控制器/视图?

我正在使用CakePHP_1.3并在线找到以下代码,但我似乎无法弄清楚将其放在何处,其次,在哪里放置名为css_file的css文件。

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

任何帮助赞赏的人......

3 个答案:

答案 0 :(得分:13)

您可以将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添加到结尾。

答案 1 :(得分:7)

您在视图中使用echo $this->Html->css('css_file_name_without_the_extension');echo $this->Html->script('same')

答案 2 :(得分:5)

根据您的问题,听起来您在逐个视图的基础上询问如何执行此操作。

这是$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>的{​​{1}}中,如下所示:

default.ctp

或者,再次,对于JavaScript:

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

不要在数组中包含.css或.js扩展名。