CakePHP:在视图的头部包含js文件

Pet*_*ter 7 javascript php jquery cakephp

cakephp文档说:

默认情况下,脚本标记以内联方式添加到文档中.如果通过将$ options ['inline']设置为false来覆盖它,则会将脚本标记添加到脚本块中,您可以在该脚本块中打印文档中的其他位置.

所以在我的视图文件(.ctp)中我有:

echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', array('inline' => 'false'));

在我的布局中,在head标签中:

echo $this->fetch('script');

但脚本标签打印出内联而不是打印头.如果我错过了视图文件中该行的回显,则该脚本在我的html中根本不会打印出来.

我们将非常感激地提供任何帮助.

PAE

ub3*_*t4r 11

你有false引号,所以PHP将它视为一个string而不是一个boolean.它应该是:

echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', array('inline' => false));
Run Code Online (Sandbox Code Playgroud)


Hel*_*man 7

我想扩展并提及一些事情.

内联脚本

这将打印出内联的脚本标记,这并不总是需要的.

<?php echo $this->Html->script('script.name'); ?>
Run Code Online (Sandbox Code Playgroud)

非内联脚本

这将把脚本放在你在布局文件中放置$ this-> fetch('script')的位置,通常是在页面的头部.(正如ub3rst4r指出的那样,你将false作为字符串传递)

<?php echo $this->Html->script('script.name', array('inline' => false)); ?>
Run Code Online (Sandbox Code Playgroud)

阻止脚本

对于许多人来说,这可能是一个更有用的版本,你可以在任何布局文件中放置一个脚本块(实际上你想要多少).我将向您展示一个示例,并将其称为scriptBottom,直到我的身体结束.

<?php echo $this->fetch('scriptBottom'); ?>
Run Code Online (Sandbox Code Playgroud)

然后你可以将块传递给脚本方法

<?php $this->Html->script('script.name', array('block' => 'scriptBottom')); ?>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助