我正在使用基本的yii2应用程序,我已经在web.php配置中禁用了boostrap css和js,但我想在名为admin的模块中启用它。
我尝试在admin模块文件夹下的config.php中添加这样的组件部分,但没有运气!
'assetManager' => [
'bundles' => [
'yii\bootstrap\BootstrapPluginAsset' => [
'js'=> ['js/boostrap.js']
],
'yii\bootstrap\BootstrapAsset' => [
'css' => ['css/boostrap.min.css']
]
],
],
我怎样才能实现这个目标?
答案 0 :(得分:4)
在您的模块的init()
方法中,您可以覆盖 存在资产包,如下所示:
public function init() {
\Yii::$app->assetManager->bundles['yii\bootstrap\BootstrapAsset'] = [
'css' => ['css/bootstrap_NEW.css']
];
parent::init();
}
在上面的示例中,我们在模块中覆盖了yii\bootstrap\BootstrapAsset
CSS文件。因此,在此模块中,它使用bootstrap_NEW.css
而不是默认值。
请注意,您可以在全球范围内的应用程序中执行此操作,而不是专门在模块的init()
方法中执行此操作。这只是一个解决这个具体案例的建议。
答案 1 :(得分:4)
您应该使用资产包来处理此问题,无需修改assetManager 。
要停用Bootstrap,只需将其从$depends
中的AppAsset
删除:
public $depends = [
'yii\web\YiiAsset',
];
在您的模块中创建一个ModuleAsset
类:
class ModuleAsset extends \yii\web\AssetBundle
{
public $depends = [
'yii\bootstrap\BootstrapAsset',
];
}
确保在模块的视图中注册它(您可以使用自定义布局):
ModuleAsset::register($this);
了解详情:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html