我目前有一个呈现6个局部视图的页面。我现在面临的问题是,因为我需要将processOutput设置为TRUE,所以jquery会被多次加载。
我尝试通过添加
解决此问题 <?php Yii::app()->clientscript->scriptMap['jquery.min.js'] = FALSE; ?>
<?php Yii::app()->clientscript->scriptMap['jquery.js'] = FALSE; ?>
对我的部分看法。问题是,通过这样做,jquery不会加载AT。
无论如何要解决这个问题,它只会加载一次吗?
答案 0 :(得分:1)
您可以在组件数组
下的配置文件中包含以下ClientScript映射'clientScript' => array(
'scriptMap' => array(
'jquery.js' => '/js/jquery.min.js', // set your path here
),
),
还要在您的<head>
部分添加以下内容
Yii::app()->clientScript->registerCoreScript('jquery');
并删除视图中包含的任何其他手动jquery。你应该没事。
答案 1 :(得分: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; ?>