在视图页面Cakephp中加载javascript的位置

时间:2013-07-08 16:20:53

标签: cakephp cakephp-2.0 cakephp-2.1

我正在开发Cakephp 2.x ..现在我正在加载我这样的js和css文件

查看/布局/ default.ctp

<?php echo $this->fetch('css'); ?>
<?php echo $this->fetch('script'); ?>
<?php echo $this->fetch('scriptBottom');?>

并且在每个视图文件中我这样做是因为有些页面我正在加载不同的css和js文件

例如,

   查看/用户/ index.ctp

 echo $this->Html->script('libs/modernizr.custom',array('inline' => false));
  $this->Html->css('reset3860.css', null, array('inline' => false));
  echo $this->Html->script('libs/jquery-1.8.2.min', array('block' => 'scriptBottom'));

现在我面临的第一个问题是当我必须在视图页面底部写 js 时,例如,如果我通过ajax提交表单...我不能写在索引页面的底部...因为如果我写在那里js将在页面的中间或中心,所以现在我做的是我去default.ctp并写在那里.. 所以我想写在索引页面的底部,这样它很容易管理,我可以很好地看到我在做什么

第二个问题是管理所有这些的最佳方法是什么...或者有没有办法让我可以创建一个cs和js文件...其中只有 css js 文件被加载..然后我在默认情况下包含该文件。 ctp页面

2 个答案:

答案 0 :(得分:3)

scriptBottom阻止之后,您应该将content块放在布局的底部:

<body>
    <?php
    echo $this->fetch('script');
    echo $this->fetch('content');
    echo $this->fetch('scriptBottom');
    ?>
</body>

然后在你的观点中(通知 - NO echo):

$this->Html->script(
    'libs/jquery-1.8.2.min', 
    array('block' => 'scriptBottom')
);
$this->Html->scriptBlock(
    "alert('Boom!');",
    array('block' => 'scriptBottom')
);

答案 1 :(得分:0)

这里有非常好的概念,而且我已经应用于我的一个应用程序中,它运行得很好

它与CakePHP 2.1兼容,并将其打包为插件。并且还将CSS压缩从CSSTidy升级到更新且更好的CSS Min。

该插件安装快捷方便。安装说明有点长 - 但这只是为了提供清晰度。

有关详情视图,您可以参考详情链接Cakephp.org,您也可以看到插件document以及如何在您的应用中使用