我正在使用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秒)。
有人已经遇到过这种行为吗?如果是的话,解决了吗?怎么样?
答案 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')); ?>