如何使用 CakePHP 3 在脚本标签中插入异步和延迟

How to insert async and defer in script tags with CakePHP 3

我正在使用 PHP Framework CakePHP 3.0.3,想知道如何插入关键字 deferasync 脚本标签:

框架的脚本注入如何:

 <? = $ This-> html-> script ('jquery-1.11.1.min.js')?> 

渲染方式:

 <script src = "/ js / jquery-1.11.1.min.js"> </ script> 

如您所愿:

 <async script src = "/ js / jquery-1.11.1.min.js"> </ script> 
 <script defer src = "/ js / jquery-1.11.1.min.js"> </ script> 

在文档中,我没有看到可以执行此插入操作的任何内容。

另一种形式如下:

 <? = $ This-> html-> script ('jquery-1.11.1.min.js' ['defer' => true])?> 

和这个渲染:

 <script src = "/ js / jquery-1.11.1.min.js" defer = "defer"> </ script>

$this->Html->script()函数是做不到的。这是在 Cake\View\StringTemplate 中硬编码的。我建议就让它保持原样,无论如何它都会起作用。 如果这对您来说是至关重要的问题,请尝试覆盖 HtmlHelper 并实现您自己的 script() 函数。

这个适合我。

<?= $this->html->script('jquery-1.11.1.min.js', ['async']);?>

之后
<script src="/js/jquery-1.11.1.min.js" async="async"></script>