Yii多次加载jquery

Yii多次加载jquery,jquery,yii,partial-views,Jquery,Yii,Partial Views,我目前有一个页面呈现6个部分视图。我现在面临的问题是,因为我需要将processOutput设置为TRUE,jquery会被多次加载 我试图通过添加 <?php Yii::app()->clientscript->scriptMap['jquery.min.js'] = FALSE; ?> <?php Yii::app()->clientscript->scriptMap['jquery.js'] = FALSE; ?> 依我

我目前有一个页面呈现6个部分视图。我现在面临的问题是,因为我需要将processOutput设置为TRUE,jquery会被多次加载

我试图通过添加

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

依我的观点。问题是,通过这样做,jquery根本不会加载


是否仍要解决此问题,以便只加载一次?

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

'clientScript' => array(
        'scriptMap' => array(
            'jquery.js' => '/js/jquery.min.js', // set your path here
        ),
    ),
同时将以下内容添加到
部分

Yii::app()->clientScript->registerCoreScript('jquery');
并删除视图中包含的任何其他手动jquery。你应该没事。

将代码更改为:

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

如果完全禁用脚本映射并将jQuery文件包含在html头部分,会发生什么情况?