YII2 多主题

2015-10-15  本文已影响0人  froyot
 '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',
        ]);

比如主题的路径@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覆盖。

上一篇 下一篇

猜你喜欢

热点阅读