如何在 Yii2 中使用自定义 css 文件布局模块

How to use custom css file for layout of a module in Yii2

我正在使用 Yii2 的基本包。我创建了一个名为 Admin 的模块,我希望这个模块有自己的布局。但我不知道将其所有 CSS 文件放在哪里。然后,如何将它们包含在 layout.php.

我的目录结构:

basic
-- module
  -- admin
    -- controllers
       -- DefaultController.php
    -- views
       -- default
       -- layouts
          -- main.php
          -- css
             -- style.css

在main.php中,我使用了这段代码,但它不起作用:

<?php $this->registerLinkTag([
    'rel'  => 'stylesheet',
    'href' => 'css/style.css',
]);
$this->head(); ?>

打开 'basic' 文件夹。你会看到一个名为 assets.
的文件夹 然后打开资产文件夹并在 AppAsset.php 文件中添加你的 css

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
        'css/main.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

在此处创建自定义资产包 class 文件:

frontend/module/admin/assets/AdminAsset.php

正确初始化 $sourcePath and $css 变量很重要。这是一个例子:

use yii\web\AssetBundle;   

class AdminAsset extends AssetBundle {

    // The directory that contains the source asset files for this asset bundle
    public $sourcePath = '@app/module/admin/web';

    // List of CSS files that this bundle contains
    public $css = ['css/admin.css'];

}

现在您可以注册此 AdminAsset 包(在布局、视图等中):

use frontend\module\admin\assets\AdminAsset;
AdminAsset::register($this);