Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Cookie и пользователи (https://javascript.ru/forum/server/3571-cookie-i-polzovateli.html)

Mangoz 03.05.2009 23:41

Cookie и пользователи
 
На сервере имеется простой html файл. В нём прописан путь к картинке, которая лежит в этом же каталоге. Когда пользователи заходят на страницу первый раз - они видят эту картинку. Но когда я её меняю - у них остаётся старая картинка. Подскажите, какой код необходим, чтобы картинка обновлялась, желательно без запрета на удалиение куков при закрытии браузера!

Riim 04.05.2009 00:19

Можно meta тегами объяснять браузеру как он должен кэшировать:
<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />

http://webanatomy.narod.ru/html/html1.html

Можно еще на сервере no-cache прописать. Я не знаю как для php. Для c# так:
Response.Cache.SetNoServerCaching();
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-1));
Response.Cache.SetCacheability( HttpCacheability.NoCache);
Response.Cache.SetValidUntilExpires(false);

Ну и что бы совсем точно было, можно добавлять к url случайный параметр:
<img src="myimage.jpg?rand=<%= StringUtils.CreateRandomHex(10) %>" alt="" />

x-yuri 04.05.2009 02:27

Цитата:

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

Mangoz 04.05.2009 09:11

Мне надо html! Кароче код работает только в опере в папку Temporary Internet Files ничего не кидает - но картинка серовно не меняется! Захожу через IE закидывает сразу - картинку тоже не меняет!

Riim 04.05.2009 09:53

Цитата:

Сообщение от Mangoz
Кароче код работает только в

Ждите экстрасенсов и телепатов, которые догадаются, какой там у вас код.

Mangoz 04.05.2009 10:09

Цитата:

Сообщение от Riim (Сообщение 18143)
Ждите экстрасенсов и телепатов, которые догадаются, какой там у вас код.

<meta http-equiv="Expires" content="-1" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />

Riim 04.05.2009 10:41

Тогда вам вероятно уже не помочь.

Kolyaj 04.05.2009 12:38

Цитата:

Сообщение от Mangoz
Кароче код работает только в опере в папку Temporary Internet Files ничего не кидает

А опера и не кидает туда ничего. Это ИЕшная папка.

Меняйте урл картинки. Единственное надежное решение.

Mangoz 04.05.2009 12:57

Что значит менять url можно поподробнее. пожалуйста

Kolyaj 04.05.2009 12:59

Одна картинка -- один src. Не надо показывать разные картинки на одном src.

Mangoz 04.05.2009 13:03

Вот весь код файла, что не так одна картинка всего <html>
<head>

</head><body … scroll=no bgcolor="#FFFFFF" text="#000000">
<title></title><style>
BODY {overflow: hidden}
</style>
<meta http-equiv="&Ntilde;&icirc;&auml;&aring;&eth;&aelig;&eg rave;&igrave;&icirc;&aring;-&Ograve;&egrave;&iuml;" content="text/html; charset=iso-8859-1">

<div align="left"><font color="#FF0000"><img src="banners/baner1.gif" width="584" height="60"></font></div>
</body>
</html>

Riim 04.05.2009 13:12

meta теги в head пишутся.

Mangoz 04.05.2009 13:22

И что если напишу будет всё робить?

Kolyaj 04.05.2009 13:26

В опере не факт, она любит все кэшировать.

Mangoz 04.05.2009 13:31

нет-нет. Просто прогу пишу - там модуль стоит HTML он работает с IE напрямую. Оперу всторону!

Mangoz 04.05.2009 15:09

Дак что там

Riim 04.05.2009 15:11

Дак пробуй. Или стесняешься? Ты не бойся, он тебя не укусит.

Mangoz 04.05.2009 15:41

Что попробовать-то?

Riim 04.05.2009 16:25

Цитата:

Сообщение от Mangoz
И что если напишу будет всё робить?

написать епт

Mangoz 04.05.2009 17:31

Дак там в коде не скрипт куки, там просто тупо название сайта - это ничего не даёт! А код который предлогали стоял в head

x-yuri 04.05.2009 22:47

проверил на ie 6, ie 7 при настройках "Check for newer versions of stored pages - Never" (где еще что-то подобное может настраиваться не знаю), изображение обновляется. Посмотри какой ответ приходит ie с сервера по поводу картинки, например, с помощью EffeTech HTTP Sniffer

Кроме того, может заголовки, заданные с помощью meta, и могут повлиять на кэширование изображений (не знаю), но я бы задавал заголовки непосредственно изображениям

p.s. <meta http-equiv="Содержимое-Тип" content="text/html; charset=iso-8859-1">
порадовало


Часовой пояс GMT +3, время: 17:57.