Yii2 Cara mengaktifkan aset default hanya di modul tertentu

Saya menggunakan aplikasi dasar yii2, saya telah menonaktifkan boostrap css dan js di konfigurasi web.php tetapi saya ingin mengaktifkannya di dalam modul yang disebut admin.

Saya mencoba menambahkan seperti ini, untuk bagian komponen di config.php di bawah folder modul admin, tetapi tidak berhasil!

'assetManager' => [
       'bundles' => [
           'yii\bootstrap\BootstrapPluginAsset' => [
                'js'=> ['js/boostrap.js']
            ],
           'yii\bootstrap\BootstrapAsset' => [
               'css' => ['css/boostrap.min.css']
           ]
        ],
    ],

Bagaimana saya bisa mencapai ini?


person xoons    schedule 09.12.2014    source sumber


Jawaban (2)


Dalam metode init() modul Anda, Anda dapat mengganti paket aset yang ada seperti di bawah ini:

public function init() {
    \Yii::$app->assetManager->bundles['yii\bootstrap\BootstrapAsset'] = [
        'css' => ['css/bootstrap_NEW.css']
    ];
    parent::init();
}

Dalam contoh di atas, kami mengganti yii\bootstrap\BootstrapAsset file CSS di modul kami. Jadi, dalam modul ini, ia menggunakan bootstrap_NEW.css sebagai ganti defaultnya.

Harap dicatat bahwa, Anda dapat melakukan ini dalam aplikasi secara global, tidak secara khusus dalam metode init() modul. Itu hanyalah saran untuk menyelesaikan kasus khusus ini.

person Ali MasudianPour    schedule 09.12.2014

Anda harus menggunakan paket aset untuk menangani hal ini, tidak perlu mengubah asetManager.

Untuk menonaktifkan Bootstrap, cukup hapus dari $depends di AppAsset :

public $depends = [
    'yii\web\YiiAsset',
];

Buat kelas ModuleAsset di modul Anda:

class ModuleAsset extends \yii\web\AssetBundle
{
    public $depends = [
        'yii\bootstrap\BootstrapAsset',
    ];
}

Pastikan untuk mendaftarkannya di tampilan modul Anda (Anda bisa menggunakan tata letak khusus):

ModuleAsset::register($this);

Baca selengkapnya: http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

person soju    schedule 09.12.2014