@Maksim86

Почему не выводится картинка в виде?

Всем доброго времени суток! Делаю интернет-магазин на yii2. Пытаюсь вывести картинку в каталоге товаров, полный путь до картинки D:/Develop/eshop/frontend/uploads/not_found.jpg, как ни пробовал прописывать путь ничего не выходит, картинка не выводится. Подскажите пожалуйста, что я не так делаю
<div class="main-panel">
        <div class="inner-right-panel bgcolor">  
        <div class="inner-products-list bgcolor">
            <div><h2><?= $catalog[$id]->name ?></h2></div>
            <?php foreach ($products as $keyProduct_type => $product_type) : ?>                
                <div class="col-md-8 products">
                    <div class="row">
                        <div class="col-sm-4">
                            <div class="product">
                                <div class="product-img">
                                    <?php if(file_exists('D:/Develop/eshop/frontend/uploads/not_found.jpg')) : ?>                                                                                
                                    <img src='not_found.jpg' alt="my image">//Вариант1  Здесь я переместил файл в каталог eshop/frontend/order                                 
                                    <?php endif; ?>
                                <?php if(!isset($product_type->picture)) : ?>                                             
                                    <?= Html::img('D:/Develop/eshop/frontend/uploads/not_found.jpg') ?>//Вариант2
                                    <?php $domain = yii\helpers\Url::base(true);
                                    echo Html::img($domain.'/frontend/uploads/not_found.jpg', ['alt' => 'My']) ?>//Вариант3
                                    <?php else : ?>
                                    <?= Html::img('D:/Develop/eshop/frontend/uploads/' . "$product_type->picture") ?>
                                <?php endif; ?>
                                </div>
                                    <p class="product-title">
                                        <h3><?= Html::a(Html::tag('div', $product_type->name, ['class' => $product_type->id == $keyProduct_type ? 'product-item-active' :'inner-product-item']), ['/order/create', 'id'=> $keyProduct_type]) ?></h3>                                        
                                    </p>
                                    <p class="product-desc">Signature NYX cosmetics</p>
                                    <p class="product-price"><?= $product_type->price ?></p>
                                </div>
                            </div>
                        </div>
                    </div>
            <?php endforeach; ?>
        </div>
        </div>
    </div>
  • Вопрос задан
  • 49 просмотров
Решения вопроса 1
maksim92
@maksim92
Нашел решение — пометь вопрос ответом!
Вариант1

1. Перенесите папку uploads либо в корень проекта чтобы было так /uploads
2. Настройте htaccess файл так, чтобы uploads можно было прочитать и все ссылки с этим началом оправлялись в эту папку.
3. Ссылку формируйте /uploads/....

Вариант2
1. Перенесите папку в frontend/web/uploads
2. Посмотрите, чтобы в htaccess было разрешено чтение и запись. (В стандартном употреблении разрешено). В стандартнойнастройке htaccess все запросы кидает в папку web. Поэтому дополнительно ничего настраивать не надо.
3. Ссылку формируйте /uploads/....

У вас проблема в двух моментах:
1. Не настроен или не правильно настроен htaccess
2. Не правильно указываете ссылку.

Рекомендую использовать второй вариант, если хотите быстрее разобраться с ошибкой. Первый вариант немного сложнее и он больше для будущего выделения файлов на отдельный сервер или домен, как и папки frontend, backend
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы