0

这是我的结构。

Layout --|
       View---|
            Element1, Element2, Element3

在 Element1、2 和 3 中,我在最顶部有以下设置。

$this->append('pageCss');
echo $this->Html->css('left_navi/left_navi'); 
$this->end('pageCss');

存在冗余取决于 Element1、2 和 3 在视图中的排序方式。

Element1、2 和 3 也用于多个视图。

我想避免不必要地调用 css 文件。有没有办法做类似的事情:

if ($thisCssFileNotUsedBefore)
        echo $this->Html->css('left_navi/left_navi'); 

请指教。

4

1 回答 1

0

感谢 cakephp irc 频道的 ten1 提供线索。

我使用了以下解决方案:

1)首先我写了这个自定义助手

<?php
App::uses('AppHelper', 'View/Helper');

class AssetsHelper extends AppHelper {

    public $cssFiles = array();

}

2) 确保在 AppController 中将其作为 Helper 调用

3)内部的各种元素都这样做。

if (!in_array('left_navi/left_navi', $this->Assets->cssFiles)) {
    echo $this->Html->css('left_navi/left_navi'); 
    $this->Assets->cssFiles[] = 'left_navi/left_navi';
}
于 2013-10-20T03:21:57.550 回答