我正在使用Yii2并一直在阅读主题和主题继承 ; 但有一些问题:
请考虑以下示例:
'view' => [
'theme' => [
'pathMap' => [
'@app/views' => [
'@app/themes/current',
'@app/themes/default',
],
],
'baseUrl' => '@web/themes/current',
'basePath' => '@webroot/themes/current',
],
],
Run Code Online (Sandbox Code Playgroud)
现在,假设我们请求主题文件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就毫无价值了。因为basePath仅在
pathMap为空时应用。
basePath不是后备,它是一个快捷方式pathMap,当你只有一个主题时快速使用。
'pathMap' => [
'@app/views' => [
'@app/themes/current/views',
],
],
Run Code Online (Sandbox Code Playgroud)
相当于:
'basePath' => '@app/themes/current',
Run Code Online (Sandbox Code Playgroud)
(Yii 知道文件夹@app/themes/current/views存在) : 当你调用视图文件
baseUrl时返回。$this->theme->getBaseUrl()多主题的价值较低。
关于静态文件的后备。主题回退并不是为此目的而设计的。
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |