0

jquery.js(pagespeedプラグインで表示)やその他のスクリプトを何度もインポートしたため、私のWebサイトのパフォーマンスが低下しました。だから私のメインレイアウトで、私は追加しました

    <?php
    $cs=Yii::app()->clientScript;
    $cs->scriptMap=array(
        'jquery.js'=>false,
        'jquery.ui.js' => false,
    );?>
 ...
 ...
    <head>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
    ..
    </head>

しかし、メインレイアウトに上記のscriptMapを追加するとすぐに、editMeリッチテキストボックスエディタが正しく機能しなくなります。

誰かがこの問題を解決する方法を教えてもらえますか?また、私のWebサイトで複数のスクリプトのインポートの問題を解決するにはどうすればよいですか?

ExtEditMe.phpで次のコードを見ることができます

public function run() {
        // Register JavaScript files
        Yii::app() -> clientScript -> registerCoreScript('jquery');
        Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/js/jquery.js');
        Yii::app() -> clientScript -> registerScriptFile(self::$_ckeAssetUrl . '/' . md5(self::$_ckeAssetUrl) . '.js');
        Yii::app() -> clientScript -> registerScriptFile(self::$_ckeAssetUrl . '/ckeditor.js');
        Yii::app() -> clientScript -> registerScriptFile(self::$_ckeAssetUrl . '/adapters/jquery.js');
        // Generate textarea
        $nameId = $this -> resolveNameID();
        $this -> htmlOptions['id'] = $nameId[1];
        if ($this -> hasModel()) {
            echo CHtml::activeTextArea($this -> model, $this -> attribute, $this -> htmlOptions);
        } else {
            echo CHtml::textArea($this -> name, $this -> value, $this -> htmlOptions);
        }
        // Load CKEditor
        $jquerySelector = CJavaScript::encode('#' . $this -> htmlOptions['id']);
        $ckeConfig = CJavaScript::encode($this -> _ckeGenerateConfig());
        Yii::app() -> clientScript -> registerScript('editMe_' . $this -> htmlOptions['id'], 'jQuery(' . $jquerySelector . ').ckeditor(' . $ckeConfig . ');', 2);
    }
4

1 に答える 1

1

回避策として、メインのレイアウトを次のように変更しました

<?php
$cs=Yii::app()->clientScript;
$cs->scriptMap=array(
    'jquery-ui.min.js' => false,
    'jquery.min.js'=>false,
);?>
 ...
 ...
    <head>
         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
    ..
    </head>

一方、

ExtEditMe.phpはそのまま保持されます。また、jquery.jsを使用していたすべての場所で、jquery-min.jsが使用されるようになりました。

于 2013-03-28T09:55:57.283 に答える