Как предоставить доступ к изображениям из корневой папки yii2?

Для предоставления доступа к изображениям из корневой папки Yii2, вам необходимо сделать несколько шагов.

1. Создайте веб-папку внутри папки web вашего проекта Yii2. Например, вы можете создать папку images внутри папки web.

2. Переместите все ваши изображения в только что созданную папку images.

3. Создайте действие контроллера, которое будет отображать изображения. Для этого создайте новый метод в контроллере, например, actionViewImage(). Внутри этого метода вы можете получить имя изображения из параметров запроса и вернуть его как файл.

Пример кода может выглядеть примерно так:

public function actionViewImage($filename)
{
    $path = Yii::getAlias('@webroot') . '/images/' . $filename;
    if (file_exists($path)) {
        return Yii::$app->response->sendFile($path);
    } else {
        throw new yiiwebNotFoundHttpException('The requested file does not exist.');
    }
}

В приведенном выше коде мы используем функцию Yii::getAlias('@webroot'), чтобы получить абсолютный путь к папке проекта - webroot, и добавляем относительный путь к изображению, указанный в параметре $filename. Если файл существует, мы используем метод sendFile компонента response, чтобы отправить файл пользователю. Если файл не существует, мы выбрасываем исключение NotFoundHttpException, чтобы вернуть код ошибки 404.

4. Добавьте правило маршрутизации в конфигурацию маршрутизации приложения. Вам нужно добавить правило, которое будет перенаправлять запросы в форме /images/<filename> к действию actionViewImage вашего контроллера.

Пример кода вашего файла config/web.php может выглядеть примерно так:

return [
    // ...
    'components' => [
        // ...
    ],
    'controllerMap' => [
        // ...
    ],
    'rules' => [
        // ...
        'images/<filename:w+>' => 'your-controller/view-image',
    ],
];

Где your-controller - имя вашего контроллера, в котором определено действие actionViewImage.

После выполнения вышеуказанных шагов, вы сможете получить доступ к изображениям, находящимся в папке images, из вашего приложения Yii2. Просто используйте URL вида /images/<filename>, чтобы получить изображение. Например, если у вас есть файл example.jpg в папке images, то URL для доступа к нему будет /images/example.jpg.