我使用高级模板为我的前端设置了一个主题。我的主题位于我为存储主题而创建的主题文件夹中。例如。 web/themes/cerulean。正如我见过的一些键/值对所暗示的那样,任何单个主题文件夹下都没有物理视图文件夹,例如。 ['@app/views' => '@webroot/themes/themename/views]。事实上,我的代码在有和没有 value 的 views 子文件夹的情况下运行。这是我的工作code => @webroot/themes/cerulean,而不是@webroot/themes/cerulean/views,但它确实需要密钥的views 子文件夹。 IE。 @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',取自frontend/config下main.php文件中的'view' => 'theme'设置。