Yii2 禁用 Bootstrap Js、JQuery 和 CSS

Posted

技术标签:

【中文标题】Yii2 禁用 Bootstrap Js、JQuery 和 CSS【英文标题】:Yii2 disable Bootstrap Js, JQuery and CSS 【发布时间】:2014-12-31 07:09:31 【问题描述】:

同标题,我不想使用 bootstrap.css 和 bootstrap.js。我尝试使用:

'assetManager' => [
    'bundles' => [
        'yii\bootstrap\BootstrapAsset' => [
            'css' => [],
        ],
    ],
],

它删除了 bootstrap.css 但不能删除 bootstrap.js。有人可以帮助我吗?

【问题讨论】:

【参考方案1】:

web.php 配置文件中将以下代码添加到组件数组中:

'assetManager' => [
        'bundles' => [
            'yii\bootstrap\BootstrapPluginAsset' => [
                'js'=>[]
            ],
        ],
    ],

更全面:

为了禁用 Css (bootstrap.css):

'assetManager' => [
    'bundles' => [
        'yii\bootstrap\BootstrapAsset' => [
            'css' => [],
        ],
    ],
],

为了禁用 JS (bootstrap.js):

'assetManager' => [
    'bundles' => [
        'yii\bootstrap\BootstrapPluginAsset' => [
            'js'=>[]
        ],
    ],
],

为了禁用 JQuery (jquery.js)

'assetManager' => [
    'bundles' => [
        'yii\web\JqueryAsset' => [
            'js'=>[]
        ],
    ],
],

为了禁用所有这些:

'assetManager' => [
    'bundles' => [
        'yii\web\JqueryAsset' => [
            'js'=>[]
        ],
        'yii\bootstrap\BootstrapPluginAsset' => [
            'js'=>[]
        ],
        'yii\bootstrap\BootstrapAsset' => [
            'css' => [],
        ],

    ],
],

更新

正如 Soju 在 cmets 中提到的,另一种替代方法是在位于 ./assets/AppAsset 类中禁用这些文件,然后删除以下行:

public $depends = [
   'yii\web\YiiAsset',              #REMOVE
   'yii\bootstrap\BootstrapAsset',  #REMOVE
];

【讨论】:

为什么给我:Invalid Call – yii\base\InvalidCallException Setting read-only property: yii\web\Application::assetManager? 如何在 Yii v1.1.15 中实现这一点? 这个不需要修改assetmanager...你只需要修改appasset bundle... 请注意:Afaikt:如果我们不想让 Yii 2 加载他们的 Jquery 版本,删除 'yii\web\YiiAsset' 将无济于事。 Jquery 仍然会加载。 确保你的assetManager数组在组件中!@IvoRenkema【参考方案2】:

在 AppAsset.php 文件中添加:

public function init()

    parent::init();
    // resetting BootstrapAsset to not load own css files
    \Yii::$app->assetManager->bundles['yii\\bootstrap\\BootstrapAsset'] = [
        'css' => [],
        'js' => []
    ];

【讨论】:

这是一个比更改配置文件更简洁的选项,可用于从主题重置引导程序 我把那个放在哪里?在 AppAsset 类中?? \Yii::$app->assetManager->bundles['yii\\bootstrap4\\BootstrapAsset'] = [ 'css' => [], 'js' => [] ]; 【参考方案3】:

对于遇到“无效呼叫”错误的任何人,您必须在 app/config/web.php 的 $config 变量中添加 Ali 对“组件”的回答,例如

'components' => [
    'assetManager' => [
        'bundles' => [
            'yii\web\JqueryAsset' => [
                'js'=>[]
            ],
            'yii\bootstrap\BootstrapPluginAsset' => [
                'js'=>[]
            ],
            'yii\bootstrap\BootstrapAsset' => [
                'css' => []
            ]
        ]
    ],
    ...
],

【讨论】:

这仅适用于基本模板

以上是关于Yii2 禁用 Bootstrap Js、JQuery 和 CSS的主要内容,如果未能解决你的问题,请参考以下文章

yii2 笔记

将 html bootstrap 转换为 react.js jsx 样式后更改 css 样式

taginput ,complete使用笔记

yii2 配合bootstrap添加按钮

Yii2框架bootstrap样式理解

yii2 用 bootstrap 给元素添加背景色