Реорганизация файла приложения в Yii 2

Я создал новый проект Yii2. Теперь я хочу реорганизовать структуру папок в две папки: "public" и "app" (которые фактически представляют защищенные файлы).

Весь код из фреймворка помещается в папку "app". В папке "public" у меня есть только один скрипт с именем "index.php", из которого я вызываю приложение. Код там выглядит следующим образом (я изменил только пути из оригинального "index.php").

Приложение / index.php

<?php

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../app/vendor/autoload.php');
require(__DIR__ . '/../app/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../app/config/web.php');

(new yii\web\Application($config))->run();

?>

Этот же подход работал в среде Yii, где мы получили другой синтаксис команд. Но теперь в Yii 2 я получил следующую проблему:

Таким образом, кажется, что все пути указывают на правильные файлы (я проверял это), но я все еще получил ошибку. Так чего мне здесь не хватает? Почему basePath по-прежнему распознает "общую" папку?

ОБНОВЛЕНИЕ 1:

После комментария от @marche и добавьте следующий код в файл конфигурации:

'components' => [
    ...
    'assetManager' => [
        'basePath' => 'my/path/to/assets',
    ],
    ...
],

Я больше не получаю сообщение об ошибке с экраном, но теперь содержимое загружается без каких-либо стилей CSS и без файлов JS (они по-прежнему извлекают URL из неправильных мест).

2 ответа

Решение

Я нашел решение. В папке "public" вместо того, чтобы просто иметь скрипт "index.php", я переместил полную "web" папку из "защищенной" папки (где фактически были расположены все ресурсы и скрипты).

Если вы хотите изменить каталог ресурсов, вам необходимо настроить компонент AssetsManager в вашем конфигурационном файле. web.php:

'components' => [
    ...
    'assetManager' => [
        'basePath' => 'my/path/to/assets',
    ],
    ...
],
Другие вопросы по тегам