Yii2 如何防止自动加载任何小部件的资产包?
Yii2 How to prevent autoloading of assetsbundle of any widget?
我正在使用\yii\jui\AutoComplete
它会自动加载 JuiAssets。有什么办法可以防止加载 JuiAssets 的文件吗?我想使用我自己的文件版本。在之前的 Yii Framework 版本中,我们可以选择阻止加载任何小部件的关联 css 和 js 文件。
有没有办法在不编辑核心文件的情况下更改任何 jui Widget 的 AssetBundle?
是的,您可以轻松自定义任何 AssetBundle
以满足您的需求:
1) 通过应用程序配置:
return [
'components' => [
'assetManager' => [
'bundles' => [
'yii\jui\JuiAsset' => [
'sourcePath' => null, // do not publish the bundle
'js' => [
// replace published js file here
],
],
],
],
],
];
2) 你可以通过assetManager
组件在运行时做同样的事情:
Yii::$app->assetManager->bundles['yii\jui\JuiAsset'] = [
'sourcePath' => null,
'js' => [...],
];
官方文档:
请注意,jQuery UI 组件的注册逻辑已在 this commit 中更改。所以Autocomplete等没有单独的asset bundle,他们都用yii\jui\JuiAsset
.
我正在使用\yii\jui\AutoComplete
它会自动加载 JuiAssets。有什么办法可以防止加载 JuiAssets 的文件吗?我想使用我自己的文件版本。在之前的 Yii Framework 版本中,我们可以选择阻止加载任何小部件的关联 css 和 js 文件。
有没有办法在不编辑核心文件的情况下更改任何 jui Widget 的 AssetBundle?
是的,您可以轻松自定义任何 AssetBundle
以满足您的需求:
1) 通过应用程序配置:
return [
'components' => [
'assetManager' => [
'bundles' => [
'yii\jui\JuiAsset' => [
'sourcePath' => null, // do not publish the bundle
'js' => [
// replace published js file here
],
],
],
],
],
];
2) 你可以通过assetManager
组件在运行时做同样的事情:
Yii::$app->assetManager->bundles['yii\jui\JuiAsset'] = [
'sourcePath' => null,
'js' => [...],
];
官方文档:
请注意,jQuery UI 组件的注册逻辑已在 this commit 中更改。所以Autocomplete等没有单独的asset bundle,他们都用yii\jui\JuiAsset
.