1

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

我试图通过添加来解决这个问题

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

以我的片面观点。问题是,这样做,jquery 根本不会加载。

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

4

2 回答 2

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; ?>
于 2014-11-12T13:07:25.253 回答
1

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

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

还将以下内容添加到您的<head>部分

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

并删除您的视图中包含的任何其他手动 jquery。你应该没事。

于 2013-05-13T04:54:50.110 回答