Yii2主题整合不起作用?

时间:2015-09-27 16:03:55

标签: yii2

Yii2主题整合?

'view' => [
    'theme' => [
        'pathMap' => ['@app/views' => '@app/admin/views'],
        'baseUrl' => '@web/admin',
    ],
],

10 个答案:

答案 0 :(得分:9)

希望您使用高级模板

在后端文件夹中添加文件夹主题

制作一个包含主题名称的子文件夹,并确保该文件夹中有layouts文件夹

即 您的新布局文件夹路径将是

<强>后端/主题/ themefoldername /布局

文件夹 backend / config / main.php

 'components' => [

        'view' => [
            'theme' => [
                'basePath' => '@backend/themes/themefoldername',
                'baseUrl' => '@backend/themes/themefoldername',
                'pathMap' => [
                    '@backend/views' => '@backend/themes/themefoldername',
                ],
            ],
        ],...

如果您想将其保留在网络文件夹中,也可以这样做,但请确保相应地更改路径

答案 1 :(得分:1)

在预先模板中,前端和后端主题集成有单独的配置。

前端主题整合=&gt; “ frontend / config / main.php ”文件:

'components' => [ 
    'view' => [
            'theme' => [

                'pathMap' => [
                    '@frontend/views' => '@themes/frontend/views', // need to // set alias first in your bootstrap.php file
                ],
            ],
        ],
],

后端主题整合=&gt; “ backend / config / main.php ”文件:

'components' => [ 
    'view' => [
            'theme' => [

                'pathMap' => [
                    '@backend/views' => '@themes/backend/views', // need to set // alias first in your "common/config/bootstrap.php" file
                ],
            ],
        ],
],

编码时会处理注释和目录路径,而不需要编写baseUrl或basePath。

答案 2 :(得分:0)

创建&#34;主题&#34; web目录中的目录并在那里创建主题。

然后将此代码包含在主配置文件中。

'view' => [
            'theme' => [
                'baseUrl' => '@web/themes/yourthemename',
                'pathMap' => [
                    '@app/views' => [
                        '@webroot/themes/yourthemename/views',
                    ]
                ],
            ],
]

答案 3 :(得分:0)

在web.php文件中使用此代码。

'view' => [
            'theme' => [
                'class' => yii\base\Theme::className(),
                'basePath' => '@app/themes/themename',
                'baseUrl' =>'@web/themes/themename',
            ],
        ],

答案 4 :(得分:0)

这是我通常用于主题化的代码。您可以在params文件中设置param并在其中添加主题名称或直接在下面的代码中。

'view' => [
        'theme' => [
            'pathMap' => ['@app/views' => '@webroot/themes/themename/views'],
            'baseUrl' => '@web/themes/themename',
        ],
    ],

答案 5 :(得分:0)

如果你使用yii2 basic,那么在config / web.php中写这个

return [
    'components' => [
        'view' => [
            'theme' => [
                'basePath' => '@app/themes/basic',
                'baseUrl' => '@web/themes/basic',
                'pathMap' => [
                    '@app/views' => '@app/themes/basic',
                ],
            ],
        ],
    ],
];

答案 6 :(得分:0)

我有adminlte主题,这是找到供应商文件夹, 然后在config / main.php中添加了这个:

'components' => [         
     'view' => [
     'theme' => [
         'pathMap' => [
            '@app/views' => '@vendor/dmstr/yii2-adminlte-asset/example-views/yiisoft/yii2-app'
         ],
     ],
    ],

答案 7 :(得分:0)

在config / web.php下的基本安装中,在组件块下添加代码。

'components' => [
               ................
               ....................
    'view' => [
        'theme' => [
            'pathMap' => [
                '@app/views' => '@app/themes/mytheme',
                '@app/modules' => '@app/themes/mytheme/modules',
            ],
            'baseUrl' => '@web/themes/mytheme',
        ],
    ],
 ...........
]

答案 8 :(得分:0)

请参阅以下链接,了解安装主题和设置。

http://banoprogrammer.blogspot.in/2017/07/backend-theme-installation.html

答案 9 :(得分:0)

我使用高级模板为我的前端设置了一个主题。我的主题位于我为存储主题而创建的主题文件夹中。例如。 web/themes/cerulean。在任何单个主题文件夹下都没有物理视图文件夹,可能是我所看到的一些键/值对所建议的。 ['@app/views' => '@webroot/themes/themename/views]。实际上,我的代码运行时带有或不带有value的views子文件夹。这是我的工作code => @webroot/themes/cerulean而不是@webroot/themes/cerulean/views,但确实需要密钥的views子文件夹。即。 @app/views。我已经测试了这两种变体,它们都有效,所以不要担心你是否对值的结束有了看法。

因为我正在使用主题作为前端,所以我已将@app/views替换为@frontend/views。这是我的frontend/config/main.php文件中的代码。

 'view' => [
            'theme' => [
                'pathMap' => ['@frontend/views' => '@webroot/themes/cerulean',],
                'baseUrl' => '@web/themes/cerulean',                
            ],
        ], 

这是我的frontend\assets\appasset.php文件中的代码:

namespace frontend\assets;

use yii\web\AssetBundle;

use Yii;
Yii::setAlias('@themes', Yii::$app->view->theme->baseUrl);

/**
* Main frontend application asset bundle.
*/
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    //public $baseUrl = '@web';
    public $baseUrl = '@themes';
    public $css = [
        'css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

您将在上面注意到我已经替换了

public $baseUrl = '@web'; 

我在顶部设置了一个别名@themes,即...

Yii::setAlias('@themes', Yii::$app->view->theme->baseUrl);

上面代码中的baseurl现在设置为@themes,它实际上代表@web/themes/cerulean'取自位于'view' => 'theme'文件main.php下的frontend/config设置。{ / p>