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

コンポーネント配列の下の設定ファイルに次の 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 に答える
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 に答える