Yii的装载jQuery的多次(Yii loading jquery multiple times)

2019-09-27 16:40发布

我现在有这使得6个局部视图的页面。 那我现在面临的问题是,因为我需要processOutput设置为TRUE,jQuery是加载多次。

我试图通过增加来解决这个

    <?php Yii::app()->clientscript->scriptMap['jquery.min.js'] = FALSE; ?>
    <?php Yii::app()->clientscript->scriptMap['jquery.js'] = FALSE; ?>

我的部分观点。 问题是,如果这样做,jQuery的不加载。

无论如何解决这个所以它只会加载一次?

Answer 1:

更改您的代码:

<?php $jquery = '/js/jquery.min.js'; ?>
<?php Yii::app()->clientscript->scriptMap['jquery.min.js'] = $jquery; ?>
<?php Yii::app()->clientscript->scriptMap['jquery.js'] = $jquery; ?>

通过这种方法,您可以使用资产管理公司。 例:

<?php $jquery = Yii::app()->assetManager->publish(Yii::app()->theme->basePath . '/assets/jquery-1.9.1.js'); ?>
<?php Yii::app()->clientscript->scriptMap['jquery.min.js'] = $jquery; ?>
<?php Yii::app()->clientscript->scriptMap['jquery.js'] = $jquery; ?>


Answer 2:

您可以包含以下组件在阵列中的配置文件ClientScript映射

'clientScript' => array(
        'scriptMap' => array(
            'jquery.js' => '/js/jquery.min.js', // set your path here
        ),
    ),

还添加以下到您<head>部分

Yii::app()->clientScript->registerCoreScript('jquery');

并删除任何其它手动jQuery的包括你的意见。 你应该罚款。



文章来源: Yii loading jquery multiple times