Задать вопрос
@vitalysokolov

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

Переношу сайт на php yii2 на новый сервер.
В корне проекта есть папка uploads с изображениями. Nginx настроен так, что смотрит не в корень, а в frontend/web (не знаю, правильно это или нет).
В результате на сайте не подгружаются изображения из этой папки uploads.
Подскажите, как это исправить.

Конфиг nginx:
server {
        listen 80;
        listen [::]:80;
        client_max_body_size 128m;
        server_name footballcase.ru;
        root /var/www/footballcase.ru/www/frontend/web;

        access_log /var/www/footballcase.ru/logs/footballcase.ru.access;
        error_log /var/www/footballcase.ru/logs/footballcase.ru.error error;

        index index.php;

        location / {
          try_files $uri /index.php$is_args$args;
        }

        location ~ ^/assets/.*\.php$ {
          deny all;
        }

        location ~ \.php$ {
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          #fastcgi_pass 127.0.0.1:9000;
          fastcgi_pass unix:/run/php/php7.0-fpm.sock;
          try_files $uri =404;
        }


Т.е.
< img src="/article/images/320_213_yjIPCN2EYGJ3PdU6hmGyu2KPTxy7TkF5.jpg" >

должен найти изображение в /uploads/article/images/320_213_yjIPCN2EYGJ3PdU6hmGyu2KPTxy7TkF5.jpg
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
anton_reut
@anton_reut
Начинающий веб-разработчик
https://www.yiiframework.com/doc/guide/2.0/ru/stru...


Расположение ресурсов

Ресурсы, в зависимости от их расположения, могут быть классифицированы как:

исходные ресурсы: файлы ресурсов, расположенные вместе с исходным кодом PHP, которые не могут быть непосредственно доступны через Web. Для того, чтобы использовать исходные ресурсы на странице, они должны быть скопированы в Web директорию и превратиться в так называемые опубликованные ресурсы. Этот процесс называется публикацией ресурсов, который более подробно описан ниже
опубликованные ресурсы: файлы ресурсов, расположенные в Web директории и, таким образом, могут быть напрямую доступны через Web.
внешние ресурсы: файлы ресурсов, расположенные на другом Web сервере, отличного от веб-хостинга вашего приложения.
При определении класса комплекта ресурсов, если Вы задаёте свойство sourcePath, это означает, что любые перечисленные ресурсы, используя относительные пути, будут рассматриваться как исходные ресурсы. Если Вы не задаёте данное свойство, это означает, что эти ресурсы - это опубликованные ресурсы (в этом случае Вам следует указать basePath и baseUrl, чтобы дать знать Yii где ресурсы располагаются).

Рекомендуется размещать ресурсы, принадлежащие приложению, в Web директорию, для того, чтобы избежать не нужного процесса публикации ресурсов. Вот почему AppAsset в предыдущем примере задаёт basePath вместо sourcePath.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы