Браузерное кеширование изображений

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Аватара пользователя
TrustNik
Сообщения: 65
Зарегистрирован: 2009.10.25, 14:21
Откуда: Воронеж

Браузерное кеширование изображений

Сообщение TrustNik »

Добрый день.

Описание задачи:
Есть модель которой соответствует определенная картика. Возникает проблема при обновлении модели, а именно при обновлении картинки. Чтобы было понятнее приведу часть кода отображения:

Код: Выделить всё

        <div class="row">
        <?php echo CHtml::label('Текущая картинка',false) ?>
                <?php if ($image===null) echo 'Нет';
                      else               echo  CHtml::image($image); ?>

    </div>

    <div class="row">
        <?php echo $form->labelEx($model,'image'); ?>
        <?php echo $form->fileField($model,'image'); ?>
        <?php echo $form->error($model,'image'); ?>
    </div>
Т.е. если у модели нет картинки, то будет отображена соответствующая надпись. Если есть, то будет отображена текущая картинка. Так же есть поле для загрузки новой картинки.
Теперь о проблеме:
Если у модели уже есть картинка и я загружаю новую, то файл новой перезаписывается поверх старой как и предпологалось. Затем происходит редирект на главную страничку. Если после этого снова зайти в редактирование той же модели, то в графе текущая картинка будет отображена старая картинка, а не новая, которую я загрузил. Если после этого обновить страничку (F5), то старая картинка смениться новой, как и должно быть. Как сделать так, чтобы не приходилось обновлять страницу, а сразу отображалась верная картинка.
Как я понимаю проблема относиться не к Yii, а к тому что браузеры кешируют изображения. Или я не прав?
Аватара пользователя
timlar
Сообщения: 1382
Зарегистрирован: 2009.09.19, 17:49
Откуда: Украина, Днепропетровск
Контактная информация:

Re: Браузерное кеширование изображений

Сообщение timlar »

Это браузер кеширует. Название изображения меняется или постоянно?
Twitter: @timlar_ua
Аватара пользователя
TrustNik
Сообщения: 65
Зарегистрирован: 2009.10.25, 14:21
Откуда: Воронеж

Re: Браузерное кеширование изображений

Сообщение TrustNik »

Название постоянно, меняющимся его делать нельзя.
Аватара пользователя
kosenka
Сообщения: 677
Зарегистрирован: 2009.09.26, 12:41
Откуда: москва
Контактная информация:

Re: Браузерное кеширование изображений

Сообщение kosenka »

TrustNik писал(а):Как я понимаю проблема относиться не к Yii, а к тому что браузеры кешируют изображения. Или я не прав?
Если в $image содержится название файла, то попробуйте так:

Код: Выделить всё

$image=$image.'?'.time();
CHtml::image($image);
 
т.е. получим примерное такое: image.jpg?10101010 or image.jpg?12121212 и тогда браузер будет думать, что ему каждый раз дают разную картинку
Аватара пользователя
TrustNik
Сообщения: 65
Зарегистрирован: 2009.10.25, 14:21
Откуда: Воронеж

Re: Браузерное кеширование изображений

Сообщение TrustNik »

kosenka
Спасибо, как раз то что нужно.
Ответить