ZF2 headScript 包含相同的文件两次


ZF2 headScript including same file twice

我正在使用ZF2并面临奇怪的行为。当我使用 headScript 附加或预置某个 Javascript 文件时,该文件被包含两次。inlineScript 也会发生同样的情况。

这是我使用 headScript()->appendFile() 的实际视图:

<?php echo $this->headScript()->appendFile($this->basePath('js/dashboard.min.js')); ?>

通过此实现,当我的页面加载时,所有请求都会发出两次,这是非常糟糕的原因是对 API 的异步请求:

Test
[2, 1, 0, 0, 0, 0, 0]
Test
[2, 1, 0, 0, 0, 0, 0]

我也尝试了没有$this->basePath()

<?php echo $this->headScript()->appendFile('js/dashboard.min.js'); ?>

并得到了相同的行为。

但是如果我把这个Javascript没有headScript,它就可以正常工作,包括一次。

<script src="js/dashboard.min.js"></script>
// And the output
Test
[2, 1, 0, 0, 0, 0, 0]

我可以看到的是,第一个包含是在加载页面时进行的,第二个包含在几秒钟后(2 或 3 秒)。

有人已经面临这种行为了吗?如果是,解决了吗?如何?

我相信

问题是你正在回显出headScript。 尝试删除您的 echo 语句,我相信它会正常工作。

使用这个:

<?php $this->headScript()->appendFile($this->basePath('js/dashboard.min.js')); ?>

取而代之的是:

<?php echo $this->headScript()->appendFile($this->basePath('js/dashboard.min.js')); ?>