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
答案 0 :(得分:10)
引号中有false
,因此PHP将其视为string
而不是boolean
。它应该是:
echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', array('inline' => false));
答案 1 :(得分:7)
我想扩展并提及一些事情。
内联脚本
这将打印出内联的脚本标记,并不总是需要。
<?php echo $this->Html->script('script.name'); ?>
非内联脚本
这会将脚本放在您在布局文件中放置$ this-&gt; fetch(&#39; script&#39;)的位置,通常位于页面的头部。 (正如ub3rst4r指出的那样,你将false作为字符串传递)
<?php echo $this->Html->script('script.name', array('inline' => false)); ?>
阻止脚本
对于许多人来说,这可能是一个更有用的版本,你可以在任何布局文件中放置一个脚本块(实际上你想要多少)。我将向您展示一个示例,并将其称为scriptBottom,直到我的身体结束。
<?php echo $this->fetch('scriptBottom'); ?>
然后你可以将块传递给脚本方法,如
<?php $this->Html->script('script.name', array('block' => 'scriptBottom')); ?>
希望这有帮助
答案 2 :(得分:3)
将它放在您的视图ctp文件中。 :)
<?php echo $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'); ?>
答案 3 :(得分:1)
你为什么要使用很多属性?只需使用网址
echo $this->Html->script('http://code.jquery.com/jquery.min.js');
答案 4 :(得分:1)
在cakephp 3中而不是数组(&#39;内联&#39; =&gt; false)你应该使用数组(&#39; block&#39; =&gt; true)如果有人正在寻找像我一样的答案是。而且你不需要在你的ctp文件顶部回显脚本,你可以放在php语法中,即
<?php $this->Html->script('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', ['block' => true]); ?>