2015-09-08 3 views
3

Я использую темы yii2 в первый раз. Я видел темы для реализации в yii2 по этой ссылке: Yii2 theme factoryYii2: Тема не работает

В соответствии с документацией я загрузил тему и установил ее. Я создал папку themes, где я разместил свои темы.

Это много я сделал:
В конфигурации/web.php файл

'components' => [ 
'view' => [ 
      'theme' => [ 
       'pathMap' => ['@app/views' => '[email protected]/themes/themes'], 
       'baseUrl' => '@www/themes/themes' 
      ] 
     ], 
], 

Но, я получаю такую ​​ошибку:

An Error occurred while handling another error: 
exception 'yii\base\InvalidParamException' with message 'Invalid path alias: @www/themes/themes' in /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php:152 
Stack trace: 
#0 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Theme.php(99): yii\BaseYii::getAlias('@www/themes/the...') 
#1 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Component.php(169): yii\base\Theme->setBaseUrl('@www/themes/the...') 
#2 /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php(518): yii\base\Component->__set('baseUrl', '@www/themes/the...') 
#3 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Object.php(105): yii\BaseYii::configure(Object(yii\base\Theme), Array) 
#4 [internal function]: yii\base\Object->__construct(Array) 
#5 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(372): ReflectionClass->newInstanceArgs(Array) 
#6 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(151): yii\di\Container->build('yii\\base\\Theme', Array, Array) 
#7 /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php(344): yii\di\Container->get('yii\\base\\Theme', Array, Array) 
#8 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/View.php(116): yii\BaseYii::createObject(Array) 
#9 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Object.php(107): yii\base\View->init() 
#10 [internal function]: yii\base\Object->__construct(Array) 
#11 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(372): ReflectionClass->newInstanceArgs(Array) 
#12 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(151): yii\di\Container->build('yii\\web\\View', Array, Array) 
#13 /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php(344): yii\di\Container->get('yii\\web\\View', Array, Array) 
#14 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/ServiceLocator.php(133): yii\BaseYii::createObject(Array) 
#15 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Application.php(554): yii\di\ServiceLocator->get('view') 
#16 /var/www/html/scrum_tool/vendor/yiisoft/yii2/web/ErrorHandler.php(228): yii\base\Application->getView() 
#17 /var/www/html/scrum_tool/vendor/yiisoft/yii2/web/ErrorHandler.php(99): yii\web\ErrorHandler->renderFile('@yii/views/erro...', Array) 
#18 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/ErrorHandler.php(101): yii\web\ErrorHandler->renderException(Object(yii\base\InvalidParamException)) 
#19 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\base\InvalidParamException)) 
#20 {main} 
Previous exception: 
exception 'yii\base\InvalidParamException' with message 'Invalid path alias: @www/themes/themes' in /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php:152 
Stack trace: 
#0 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Theme.php(99): yii\BaseYii::getAlias('@www/themes/the...') 
#1 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Component.php(169): yii\base\Theme->setBaseUrl('@www/themes/the...') 
#2 /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php(518): yii\base\Component->__set('baseUrl', '@www/themes/the...') 
#3 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Object.php(105): yii\BaseYii::configure(Object(yii\base\Theme), Array) 
#4 [internal function]: yii\base\Object->__construct(Array) 
#5 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(372): ReflectionClass->newInstanceArgs(Array) 
#6 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(151): yii\di\Container->build('yii\\base\\Theme', Array, Array) 
#7 /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php(344): yii\di\Container->get('yii\\base\\Theme', Array, Array) 
#8 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/View.php(116): yii\BaseYii::createObject(Array) 
#9 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Object.php(107): yii\base\View->init() 
#10 [internal function]: yii\base\Object->__construct(Array) 
#11 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(372): ReflectionClass->newInstanceArgs(Array) 
#12 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/Container.php(151): yii\di\Container->build('yii\\web\\View', Array, Array) 
#13 /var/www/html/scrum_tool/vendor/yiisoft/yii2/BaseYii.php(344): yii\di\Container->get('yii\\web\\View', Array, Array) 
#14 /var/www/html/scrum_tool/vendor/yiisoft/yii2/di/ServiceLocator.php(133): yii\BaseYii::createObject(Array) 
#15 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Application.php(554): yii\di\ServiceLocator->get('view') 
#16 /var/www/html/scrum_tool/vendor/yiisoft/yii2-debug/Module.php(129): yii\base\Application->getView() 
#17 [internal function]: yii\debug\Module->yii\debug\{closure}(Object(yii\base\Event)) 
#18 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Component.php(541): call_user_func(Object(Closure), Object(yii\base\Event)) 
#19 /var/www/html/scrum_tool/vendor/yiisoft/yii2/base/Application.php(372): yii\base\Component->trigger('beforeRequest') 
#20 /var/www/html/scrum_tool/index.php(13): yii\base\Application->run() 
#21 {main} 

ответ

4

Похоже @wwwroot не допустимый путь.

Попробуйте это, если вы используете основные приложения:

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

Больше информации here

+0

Я пробовал это, но он работает нормально. Домашняя страница такая же, как и раньше. НЕТ изменений произошли –

+0

Да, это сработало, но это создало ужасный взгляд на веб-сайт и дает эту ошибку: «Плохой запрос» (№ 400): невозможно проверить отправку данных. В baseUrl я добавил «@ web/themes», потому что моя папка с темами помещается в корневую папку. Мне нужно изменить путь baseUrl –

0

попробовать некоторые вещи, как этот

'view' => [ 
     'theme' => [ 
      'basePath' => '@wwwroot/themes/themes', 
      'pathMap' => ['@app/views' => '@wwwroot/themes/themes'], 
      'baseUrl' => '@www/themes/themes' 

     ], 
    ], 

и одна распространенная ошибка использует его как папку макетов вместо папки views. Пожалуйста, остерегайтесь этого и создавайте папку макетов в @ wwwroot/themes/themes, если вы планируете переопределять макеты.