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

Как в yii2 указать путь для картинки с backend на frontend?

Всем привет! Делаю сайт. В админке, администратор загружает картинки, для того чтобы они в будущем были выведены на фронтенд. Использую advanced приложение yii2. Картинки сохраняются по адресу backend/web/files/имя_подпапки/имя_файла.jpg. Верстка лежит по адресу frontend/view/site/index (в ней надо выводить картинки). Два виртуал хоста настроены "смотреть" на папку web на фронте и на бэкенде соответственно. Я пробовал разные варианты указать scr в тэге (и вот так ./../../backend/web/далее_путь_к_картинке, и алиасы создавал типа Yii::getAlias('@backend')). Погуглил, но рабочего варианта так и не нашел :( (даже предлогали symlink создать в yii2, не совсем понял как это работает, может и помогло бы). Как мне в верстке указать пути к картинкам, которые лежат на бэкенде (а именно: ) или может что-то другое попробывать или переделывать сохранение картинок в другое место? Надеюсь, суть проблемы описал понятно.

Благодарю всех за ответы. Моя ошибка заключалась с том, что я указывал абсолютные пути (типа /opt/lammp/и_так_далее, а нужно было указывать пути относительно папки htdocs (потому, что на нее смотри сервер по умолчанию) и задавать пути типа http://localhost/и_путь_к_моей_папки_с_картинками/... Проблему решил следующим способом: указал в index.php (на фронтэнде), BACKEND_IMG='http://localhost/и_путь_к_моей_папки_с_картинками_...', и далее в верстке юзаю <img src="<?= BACKEND_IMG.'имя_картинки.jpg' ?>".
  • Вопрос задан
  • 3562 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
1-я ошибка: картинки должны сохраняться в публичную папку фронтенда.
2-я ошибка: Вам видимо нужен url, а не путь (path). Yii::getAlias('@backend') это как раз путь, а не url. Путь это место на серврере никак не связанное с доменом и используется для сохранения, удаления и изменения файлов. А Вам нужен url, относительно домена (корня публичной папки).

даже предлогали symlink создать в yii2

не в yii, а на сервере. Что бы было понятнее - это ярлык, виртуальная папка. То есть у Вас будет папка, например img, в Вашей публичной папке, которая будет как-бы перенаправлять запросы в другое место.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
miraage
@miraage
Старый прогер

или может что-то другое попробывать или переделывать сохранение картинок в другое место?


Логично, что картинки надо загружать в common.
Ответ написан
@AlikDex
Ответ вроде на поверхности лежит. Задайте жесткие алиасы путей до фронтенда в каком-нибудь bootstrap.php в конфиге common. Там же можно задать алиас для урла с привязкой к домену.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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