禁用多个jquery版本加载
我使用的是Yii 2.0.9,它正在加载jquery 2.2.4,我对此没有问题。问题是我已经安装了krajee扩展,它正在加载jQuery1.7.2,这是我不想要的。如何调整AppAssets,使其返回到已加载的jquery版本?首先,我认为不同版本(1.7.2)的jquery是从其他地方加载的,因为Kartik的小部件有单独的“基础”存储库,并定义自己的存储库,该存储库作为小部件的基础,仅依赖于Yii的核心资产包:禁用多个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
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
,定义自己的,根据需要自定义(您可以将现有的子类化)并在所需位置注册
请阅读有关中资产的更多信息