我正在使用Yii 2.0.9并且它正在加载jquery 2.2.4,我没有遇到任何问题。问题是我已经安装了krajee扩展,它加载了jquery 1.7.2,我并不是真正想要的。如何调整AppAssets以使其回退到已加载的jquery版本?
答案 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中的资产。