我正在使用Yii2
并一直在阅读有关theming和theme inheritance的信息;但是有一些问题:
考虑以下示例:
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => [
'@app/themes/current',
'@app/themes/default',
],
],
'baseUrl' => '@web/themes/current',
'basePath' => '@webroot/themes/current',
],
],
现在,假设我们请求主题文件
foo
;据我了解,这将首先按以下顺序查找:@app/themes/current/foo.php
@app/themes/default/foo.php
@app/views/foo.php
现在想象在
foo.php
主题中找不到@app/themes/current/
,因此它将使用在@app/themes/default/
中找到的文件。现在,考虑到
baseUrl
和basePath
设置,我有点困惑在这些情况下如何使用它们。现在,假设
foo.php
引用了文件内的图像文件,这是否还会尝试查找@web/themes/current/images/myImage.jpg
而不是@web/themes/default/images/myImage.jpg
? 最佳答案
在这种情况下,basePath
毫无值(value)。因为basePath
仅在以下情况下适用pathMap
为空。basePath
并非后备,它是pathMap
的快捷方式,只有一个主题时可以快速使用。
'pathMap' => [
'@app/views' => [
'@app/themes/current/views',
],
],
相当于:
'basePath' => '@app/themes/current',
(Yii知道文件夹
@app/themes/current/views
存在)baseUrl
:当您在 View 文件中调用$this->theme->getBaseUrl()
时返回。多主题的值(value)降低。关于静态文件的后备。主题后备不是为此目的而设计的。
关于php - 确定使用回退时Yii2如何查找主题资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32047784/