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

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

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

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

【问题讨论】:

    标签: php twitter-bootstrap yii2 yii-extensions


    【解决方案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' => []
                ]
            ]
        ],
        ...
    ],
    

    【讨论】:

    • 这仅适用于基本模板
    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多