禁用多个jquery版本加载

禁用多个jquery版本加载,jquery,yii2,Jquery,Yii2,我使用的是Yii 2.0.9,它正在加载jquery 2.2.4,我对此没有问题。问题是我已经安装了krajee扩展,它正在加载jQuery1.7.2,这是我不想要的。如何调整AppAssets,使其返回到已加载的jquery版本?首先,我认为不同版本(1.7.2)的jquery是从其他地方加载的,因为Kartik的小部件有单独的“基础”存储库,并定义自己的存储库,该存储库作为小部件的基础,仅依赖于Yii的核心资产包: public $depends = [ 'yii\web\Jquer

我使用的是Yii 2.0.9,它正在加载jquery 2.2.4,我对此没有问题。问题是我已经安装了krajee扩展,它正在加载jQuery1.7.2,这是我不想要的。如何调整AppAssets,使其返回到已加载的jquery版本?

首先,我认为不同版本(1.7.2)的jquery是从其他地方加载的,因为Kartik的小部件有单独的“基础”存储库,并定义自己的存储库,该存储库作为小部件的基础,仅依赖于Yii的核心资产包:

public $depends = [
    'yii\web\JqueryAsset',
    'yii\bootstrap\BootstrapAsset',
];
无论如何,我在这里看到了一些可能的选择

首先,识别从何处加载另一个版本的jQuery

1)如果它在您自己的代码中,只需删除此依赖项即可

如果在供应商模块中:

2)如果jQuery是在单独的
AssetBundle
中定义的,您可以使用jQuery禁用此资产捆绑,如回答中所述

3)如果它被定义为对文件的简单引用,您可以这样删除它:

return [
    // ...
    'components' => [
        'assetManager' => [
            'bundles' => [
                'used\extension\AssetBundle' => [
                    'js' => [
                        'path/to/jquery1.7.2.js', // Remove jQuery 1.7.2 from here (do not include this)
                        // Extension's other assets
                        'path/to/extension.js',
                    ],
                ],
            ],
        ],
    ],
];
或者,您也可以在运行时执行与选项2中所述相同的操作。

4)您可以使用选项2)完全禁用扩展的
AssetBundle
定义自己的,根据需要自定义(您可以将现有的子类化)并在所需位置注册


阅读中有关资产的更多信息。

首先,我认为不同版本(1.7.2)的jQuery是从其他地方加载的,因为Kartik的小部件有单独的“基本”存储库,并定义了自己的存储库,它作为小部件的基础,并且只依赖于Yii的核心资产包:

public $depends = [
    'yii\web\JqueryAsset',
    'yii\bootstrap\BootstrapAsset',
];
无论如何,我在这里看到了一些可能的选择

首先,识别从何处加载另一个版本的jQuery

1)如果它在您自己的代码中,只需删除此依赖项即可

如果在供应商模块中:

2)如果jQuery是在单独的
AssetBundle
中定义的,您可以使用jQuery禁用此资产捆绑,如回答中所述

3)如果它被定义为对文件的简单引用,您可以这样删除它:

return [
    // ...
    'components' => [
        'assetManager' => [
            'bundles' => [
                'used\extension\AssetBundle' => [
                    'js' => [
                        'path/to/jquery1.7.2.js', // Remove jQuery 1.7.2 from here (do not include this)
                        // Extension's other assets
                        'path/to/extension.js',
                    ],
                ],
            ],
        ],
    ],
];
或者,您也可以在运行时执行与选项2中所述相同的操作。

4)您可以使用选项2)完全禁用扩展的
AssetBundle
定义自己的,根据需要自定义(您可以将现有的子类化)并在所需位置注册

请阅读有关中资产的更多信息