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

use*_*234 4 css php layout module yii2

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

我的目录结构:

basic
-- module
  -- admin
    -- controllers
       -- DefaultController.php
    -- views
       -- default
       -- layouts
          -- main.php
          -- css
             -- style.css
Run Code Online (Sandbox Code Playgroud)

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

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

Ole*_*hov 5

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

frontend/module/admin/assets/AdminAsset.php
Run Code Online (Sandbox Code Playgroud)

正确初始化$sourcePath$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'];

}
Run Code Online (Sandbox Code Playgroud)

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

use frontend\module\admin\assets\AdminAsset;
AdminAsset::register($this);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这完美无缺. (2认同)