在Cakephp中加载特定视图页面的特定css和js文件

在Cakephp中加载特定视图页面的特定css和js文件,cakephp,cakephp-2.0,cakephp-2.1,Cakephp,Cakephp 2.0,Cakephp 2.1,我正在研究CakePHP2.x 目前,我管理我的视图是这样的:在我的View/layout文件夹中有一个default.ctp文件,其中包含所有可重用的数据(例如菜单、侧栏、页脚),所有css和js文件也导入其中。然后在我的view/ControllerName/index.ctp文件中有一个查看页面,我在其中显示记录 现在我想要的是为特定的视图页面加载特定的css和js文件。我该怎么办??因为当时我的所有视图页面都是从default.ctp文件中获取所有css和js文件。但是我也想加载defa

我正在研究CakePHP2.x

目前,我管理我的视图是这样的:在我的
View/layout文件夹中有一个
default.ctp
文件,其中包含所有可重用的数据(例如菜单、侧栏、页脚),所有css和js文件也导入其中。然后在我的
view/ControllerName/index.ctp文件中有一个查看页面,我在其中显示记录

现在我想要的是为特定的视图页面加载特定的css和js文件。我该怎么办??因为当时我的所有视图页面都是从default.ctp文件中获取所有css和js文件。但是我也想加载default.ctp布局,但是我想,如果假设我调用的是另一个视图页面,那么它会从default.ctp中选择一些css和js文件,并跳过其余的文件


希望您理解我的意图。

在您的AppController::beforeRender()函数中;添加以下行:

$this->set('controller_name', $this->name);
在default.ctp文件中,您可以基于$controller\u name viewVar执行
if
switch
语句,并根据其值显示一些CSS/JS


或者,您可以简单地将覆盖添加到其他CSS和JS文件中,并在要显示的每个特定视图上分别调用它们。

在您的AppController::beforeRender()函数中;添加以下行:

$this->set('controller_name', $this->name);
在default.ctp文件中,您可以基于$controller\u name viewVar执行
if
switch
语句,并根据其值显示一些CSS/JS


或者,您可以简单地将覆盖添加到其他CSS和JS文件中,并在您想要显示的每个特定视图上分别调用它们。

这是一种可行的方法: 在
AppController
中的
beforeFilter
函数中:

$this->set('loadXCss', false);
$this->set('loadYCss', false);
$this->set('loadZCss', false);
然后,在任何控制器中,您都应该决定是否显示css:

$this->set('loadZCss', true);
最后,在布局中:

<?php
echo this->Html->css('main.css', null, array('media' => 'screen,projection'));
if ( $loadXCss ) echo this->Html->css('x.css', null, array('media' => 'screen,projection'));
if ( $loadYCss ) echo this->Html->css('y.css', null, array('media' => 'screen,projection'));
if ( $loadZCss ) echo this->Html->css('z.css', null, array('media' => 'screen,projection'));
?>

这是一种可行的方法: 在
AppController
中的
beforeFilter
函数中:

$this->set('loadXCss', false);
$this->set('loadYCss', false);
$this->set('loadZCss', false);
然后,在任何控制器中,您都应该决定是否显示css:

$this->set('loadZCss', true);
最后,在布局中:

<?php
echo this->Html->css('main.css', null, array('media' => 'screen,projection'));
if ( $loadXCss ) echo this->Html->css('x.css', null, array('media' => 'screen,projection'));
if ( $loadYCss ) echo this->Html->css('y.css', null, array('media' => 'screen,projection'));
if ( $loadZCss ) echo this->Html->css('z.css', null, array('media' => 'screen,projection'));
?>