禁用多个jquery版本加载

时间:2016-09-08 00:19:57

标签: jquery yii2

我正在使用Yii 2.0.9并且它正在加载jquery 2.2.4,我没有遇到任何问题。问题是我已经安装了krajee扩展,它加载了jquery 1.7.2,我并不是真正想要的。如何调整AppAssets以使其回退到已加载的jquery版本?

1 个答案:

答案 0 :(得分:0)

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

public $depends = [
    'yii\web\JqueryAsset',
    'yii\bootstrap\BootstrapAsset',
];

无论如何,我在这里看到几个可能的选择。

首先,要识别从哪里加载另一个版本的jQuery。

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

如果它在供应商模块中:

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

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,定义您自己的选项,根据需要自定义它(您可以将现有的子类化)和在所需的地方注册。

详细了解official docs中的资产。