доступ к файлам вне baseUrl с помощью Yii - PullRequest
1 голос
/ 07 ноября 2011

Я использую фреймворк Yii.Это моя структура каталогов:

folder
    images
    yii-framework
    mysite
       index.php
       protected
       assets
       .
       '
   '

"folder" - это субдомен webroot .My a.subdomain.com, указывающий на mysite.Проблема в том, что я хочу использовать изображения из папки «image» в «mysite».

Следующий код хорошо работает для localhost, но не для веб-сервера:

echo "<img src='".Yii::app()->request->baseUrl."/../images/image1.png' height='500' width='500'>";

Ответы [ 3 ]

2 голосов
/ 07 ноября 2011

На самом деле Yii делает это относительно просто, если у вас есть правильные настройки. Если у вас есть веб-корни веб-сайтов, работающие в одной и той же файловой системе, вы можете предварительно опубликовать их с их истинными путями в файловой системе, и Yii передаст вам общедоступный URL-адрес, чтобы они скопировали их в папку ресурсов сайта.

$url = Yii::app()->assetManager->publish('/path/to/webroot/images/imageIWant.jpg')
echo "<img src='".Yii::app()->assetManager->baseUrl.'/'.$url."' height='500' width='500'>";

Это должно сделать это для вас, обязательно добавьте baseURL assetManager на случай, если он изменится.

EDIT: Если вы решите этот маршрут, это стоит прочитать, на самом деле вся вики стоит прочитать: p

Понимание "Активы"

2 голосов
/ 27 июля 2012

Вы можете использовать только:

<img src="/images/image1.png"/>

Это должно работать.Не нужно указывать абсолютный URL.

1 голос
/ 07 ноября 2011

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

Вам придется создать скрипт, который загружает изображение для вас и пропускает его. Это очень неэффективный способ обслуживания изображения. Вероятно, гораздо лучше перенести изображения в корневой каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...