javascript - ZF2 headScript 包含两次相同的文件

标签 javascript php zend-framework2

我正在使用 ZF2 并面临一个奇怪的行为。当我使用 headScript 附加或前置一些 Javascript 文件时,该文件被包含两次。 inlineScript 也是如此。

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

<?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'); ?>

并得到相同的行为。

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

<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')); ?>

关于javascript - ZF2 headScript 包含两次相同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803492/

相关文章:

javascript - 图像鼠标悬停时覆盖面板

javascript - 当存在不使用 'yield' 的函数或类似 'call' 或 'put' 的效果时,如何测试传奇?

php - 在 php 中检测 mysql 支持

if 语句中的 PHP 数据库连接

mysql - Doctrine 2 大写首字母

php - 字符编码和使用 Zend\Dom\Query

javascript - 网站的 javascript 中未处理的异常会怎样?

javascript - 排序 JavaScript 数组时的奇怪行为

php - codeigniter 3 使用单个查询更新多个表

php - 将 ZF2 服务管理器转换为 ZF3