2016-03-04 42 views
1

我正在使用ZF2并面临奇怪的行为。当我使用headScript追加或预先添加一些Javascript文件时,该文件包含两次。 inlineScript也一样。ZF2 headScript包含两次相同的文件

这是我用用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秒)。

有人已经面对这种行为?如果是,解决了吗?怎么样?

回答

2

我相信问题在于你正在回应headScript。尝试删除你的回声声明,我相信它会正常工作。

使用此:

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

取而代之的是:

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

人,我不相信。我总是使用回声...我得到了骨架的例子,并认为它确定(https://github.com/zendframework/ZendSkeletonApplication/blob/master/module/Application/view/layout/layout.phtml)。 非常感谢! –

+2

就像在骨架的应用程序,你只想回声一次。如果您回应appendFile调用,并在稍后回显标题,那就是您重复的原因。 –

+0

不错@TimFountain,我不知道这个。谢谢你的建议。 –

相关问题