Forum Webscript.Ru

Дизайн и Верстка => Всё о Html => Тема начата: dub от 03 Августа 2002, 18:56:24

Название: Как запретить кэширование графики?
Отправлено: dub от 03 Августа 2002, 18:56:24
Есть страница, чувствительная к обновлению графического материала. То есть разметка остается той же. А вот графика изменяется. А браузер с удовольствием подставляет сохраненную в Темпорари Интернет Файлз. Получается ерунда. Нужно запретить кэширование графики ВАЩЕ. То есть, чтоб при каждом обращении к странице графика в обязательном порядке заново загружалась с сервера.
1) Можно ли это сделать для отдельных изображений?
2) Если для всей страницы, то как?

Я уже как-то пробовал с HTTP-заголовками. Что-то не особо это влияло на графику, только в сочетании с reload :).
Название: Как запретить кэширование графики?
Отправлено: Unregistered от 03 Августа 2002, 21:33:52
Цитировать
Можно ли это сделать для отдельных изображений?

прописывай не абсолютные, а относительные пути.
т.е. не хттп://ввв.домен.ру/ляляля/имжес/чтото.гиф, а
ляляля/имжес/чтото.гиф
Вроде это помогает
Цитировать
Что-то не особо это влияло на графику

и не будет
___________________
глебушка я!
Название: Как запретить кэширование графики?
Отправлено: KBA-KBA от 05 Августа 2002, 05:04:53
Цитировать
прописывай не абсолютные, а относительные пути.

не поможет... точно...
Название: Как запретить кэширование графики?
Отправлено: Я... от 05 Августа 2002, 17:04:31
Попробуй

...Должно получиться...
Название: Как запретить кэширование графики?
Отправлено: alex007 от 11 Августа 2002, 15:49:25
Цитировать

...Должно получиться...

Пробывал, все равно сохраняет и кэширует
Название: Как запретить кэширование графики?
Отправлено: alex007 от 11 Августа 2002, 23:44:27
Кажется нашел метод.
попробуй через PHP

Пиши в html


а в test.php

  header("Content-type: image/gif");
  readfile("image.jpg");
?>

Может поможет.
Удачи.

С уважением,
Алекс
Название: Как запретить кэширование графики?
Отправлено: Serchey от 12 Августа 2002, 11:25:58
Заголовок "Pragma: no-cache\\n\\n" - устарел, т.к. используется для HTTP/1.0, а мы сейчас всюду работаем с HTTP/1.1.
Ну, а для второго, с этой целю приминяется заголовок:
"Cache-Control: (publick|private|no-cache|no-store|no-transform|Must-revalidate|proxy-revalidate|max-age=secnds)\\n\\n";
Я выделил подходящие варианты, так что делайте выводы, господа. :)
Название: Как запретить кэширование графики?
Отправлено: Serchey от 12 Августа 2002, 11:28:47
Да, чуть не забыл - есть еще такой

Expires: Mon, 06 May !996 04:57:00 GMT

- ни один бровзер не рискнет после такого :) черпать из кэша данные.

Удачи.
Название: Как запретить кэширование графики?
Отправлено: Maniac от 12 Августа 2002, 13:00:29
Цитировать

Не поможет.

А вот

может помочь.
Название: +ReName
Отправлено: Jslab от 16 Августа 2002, 18:47:13
Да, вначале надо отменить кэширование самой странички
прагмами (как верно советуют выше)
а потом переименовать [!]  img (или имя дир.где они лежат)
в этой страничке и на сервере.
Название: Как запретить кэширование графики?
Отправлено: alex007 от 16 Августа 2002, 20:23:26
Цитировать

может помочь.

А каким путем можно это сдетать, где доку прочитать можно??? Или кинь примерчик.
Название: Как запретить кэширование графики?
Отправлено: Maniac от 18 Августа 2002, 13:42:15
Цитировать
А каким путем можно это сдетать, где доку прочитать можно??? Или кинь примерчик.

А чего тут кидать? См. мануал по HTTP, раздел кеширование. Там сказано: страницы, полученные по запросу методомо POST никогда не кешируются, методом GET - кешируются, только если это указано сделать.
Вот и все. Получай картинки скриптом, типа img.php?address, который просто делает редирект на address и (по идее), картинки кешироваться не будут
Название: Как запретить кэширование графики?
Отправлено: dub от 17 Сентября 2002, 04:09:48
Maniac
М-да.
Знание - сила.

Значится, получаем следующее решение:
1) в html указываем


2) создаем следующий img.php:

$url = $_SERVER[\'REQUEST_URI\'];
$parsed = parse_url($url);
$image_name = $parsed["query"];
header("Content-type: image/gif");
readfile($image_name);
?>

Работает более чем стройненько.

KBA-KBA, Я..., alex007, Serchey, Maniac
Спасибо!
Название: Как запретить кэширование графики?
Отправлено: Maniac от 17 Сентября 2002, 15:27:04
Слушай, а header("Location:$QUERY_STRING"); не покатит?
Название: Как запретить кэширование графики?
Отправлено: dub от 18 Сентября 2002, 03:17:51
М-да... Что-то я перемудрил. Спасибо.

header("Location: ".$_SERVER[\'QUERY_STRING\']);

Вот так вот у меня работает.. У меня register_globals off.