Yii2 主题记录

Yii2本身支持多模块,多主题开发。因此对开发中遇到的多主题问题,以及自定
义不同模块主题需要的注意事项进行记录

  • 主题添加

默认全局主题在配置文件中添加comment配置


 'view' => [
            'theme' => [
                'basePath' => '@app/themes/{themesName}',
                'baseUrl' => '@web',
                'pathMap' => [
                    '@app/views' => '@app/themes/{themesName}',
                ],
            ],
  ]

  • 多模块定义主题

如果有多个不同的模块,想要在不同的模块中设置不同的模板,在模块的入口文
件中添加


        \Yii::$app->view->theme = new \yii\base\Theme([
            'pathMap' => ['@app/views' => '@app/admin/views'],
            'baseUrl' => '@web',
        ]);

  • 文件机制

YII2中主题layout文件机制,如果定义了重新定义了@app/views,则在该目录下搜
索layout文件夹中的布局文件,如果没有,则在默认文件中寻找。其他页面的view
文件也是如此。

  • 注意

如果你跟我一样,将themes文件放置在app根目录内,而网站更目录是@app/web,那
么还需要对主题的静态文件做稍微修改。
YII2中,web可以访问的目录是限制在@web目录下。所以以上情况需要将主题的静态
文件使用Assets发布。

比如主题的路径@app/themes/tfviolet,在该目录下(该目录下其他目录内也可以)建
立一个ThemeAsset文件


namespace app\themes\tfviolet;

use yii\web\AssetBundle;

class ThemeAsset extends AssetBundle
{
    public $sourcePath = '@app/themes/tfviolet/static';
    public $css = [

        'css/materialize.min.css',
        'css/style.css'
    ];

    public $js = [
        'js/materialize.min.js'
    ];
}

注意,一定要定义sourcePath,只有这样才能将sourcePath的所有文件发布到asset目
录下。发布的目录是@basthPath/asset
定义sourcePath之后,该Assets的baseUrl, basePath则是无效的,被AssetManage覆盖。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值