在Cakephp中加载特定视图页面的特定css和js文件
我正在研究CakePHP2.x 目前,我管理我的视图是这样的:在我的在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
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'));
?>