两次包含相同文件的ZF2 headScript

时间:2016-03-04 18:31:01

标签: javascript php zend-framework2

我正在使用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秒)。

有人已经遇到过这种行为吗?如果是的话,解决了吗?怎么样?

1 个答案:

答案 0 :(得分:2)

我认为问题在于你正在回应headScript。尝试删除你的echo语句,我相信它会正常工作。

使用此:

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

而不是:

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