如何覆盖控制器中yii2上的默认css

时间:2016-11-22 11:22:00

标签: php yii2 yii2-basic-app

AppAsset附带yii2 basic

class MainController extends \yii\base\Controller {

    public function init()
    {
        parent::init();
    }

    public function beforeAction($action) { 
        if(Yii::$app->request->get('site')) {
            // remove css/site.css
            // add css/other.css
        }

        return parent::beforeAction($action);
    }

    public function actionErro()
    {
        return $this->render('erro');
    }    

}

我的主控制器

{{1}}

我需要删除 css / site.css 并使用其他名称添加新的名称,如上面的代码所示!

谢谢!

3 个答案:

答案 0 :(得分:0)

最简单的方法是创建自己的资产,包含所有旧的AppAsset依赖项,但使用自定义css并注册它而不是AppAsset。

答案 1 :(得分:0)

你可以重写 `

public $css = [
    'css/site.css',
];

public $css = [
     'css/other.css',
     'css/other_second.css',
];

(如果您想要连接多个css)。 同样适用于js文件。并删除beforeAction部分。

答案 2 :(得分:0)

我的解决方案

public function beforeAction($action) { 
    if(Yii::$app->request->get('site')) {

        Yii::$app->assetManager->bundles = [
            'app\assets\AppAsset' => [
                'css' => ['css/layout-01.css'],
            ],
        ];
    }

    return parent::beforeAction($action);
}