Home All Groups Group Topic Archive Search About

Asp.net 2.0 caching and images

Author
13 Jan 2006 11:53 AM
Alex Greenberg
Hi,

I'm having a strange problem:

I have a product.aspx page where the admin can change product
properties, including the JPEG.  The JPEG will always have the same
name: eg. 120.jpg and in the same location.

1) Admin visits page and browses to images/myimage.jpg
2) Application takes myimage.jpg and creates a modified copy in
myapp/img and calls it 120.jpg.
3) image path in database changes to myapp/img/120.jpg
3) Admin leaves page
4) Admin revisits page (in same session) and picks a different image,
which replaces the old one but retains the name 120.jpg.
5) Admin leaves and comes back one more time.  OLD IMAGE IS STILL
DISPLAYED (from step 2).  Even though image is changed on hard drive.

obviously, IE is caching the image and going back to it on subsequent
visits in same session.  I tried using the No-Cache directive.  I also
added a ?t=<random> to the page parameters.  Neither of these worked.

Please help.

Author
13 Jan 2006 2:44 PM
S. Justin Gengo [MCP]
Alex,

Try adding the t=<random>

To the image url instead of the page. IE caches images based on the image
path not the page path. Making it look like the image path has changed will
stop the caching. For example:

http://msdn.microsoft.com/asp.net/art/asprk.jpg?t=1234

--
Sincerely,

S. Justin Gengo, MCP
Web Developer / Programmer

www.aboutfortunate.com

"Out of chaos comes order."
                            Nietzsche
Show quoteHide quote
"Alex Greenberg" <minimaxi***@gmail.com> wrote in message
news:1137153195.286553.161060@o13g2000cwo.googlegroups.com...
> Hi,
>
> I'm having a strange problem:
>
> I have a product.aspx page where the admin can change product
> properties, including the JPEG.  The JPEG will always have the same
> name: eg. 120.jpg and in the same location.
>
> 1) Admin visits page and browses to images/myimage.jpg
> 2) Application takes myimage.jpg and creates a modified copy in
> myapp/img and calls it 120.jpg.
> 3) image path in database changes to myapp/img/120.jpg
> 3) Admin leaves page
> 4) Admin revisits page (in same session) and picks a different image,
> which replaces the old one but retains the name 120.jpg.
> 5) Admin leaves and comes back one more time.  OLD IMAGE IS STILL
> DISPLAYED (from step 2).  Even though image is changed on hard drive.
>
> obviously, IE is caching the image and going back to it on subsequent
> visits in same session.  I tried using the No-Cache directive.  I also
> added a ?t=<random> to the page parameters.  Neither of these worked.
>
> Please help.
>
Are all your drivers up to date? click for free checkup

Author
16 Jan 2006 8:12 PM
Joerg Jooss
Hello S. Justin Gengo [MCP],

> Alex,
>
> Try adding the t=<random>
>
> To the image url instead of the page. IE caches images based on the
> image path not the page path. Making it look like the image path has
> changed will stop the caching. For example:
>
> http://msdn.microsoft.com/asp.net/art/asprk.jpg?t=1234

A better approach is to use HTTP CacheControl headers. Simply configure IIS
to attach the HTTP header CacheControl: no-cache to all images served from
your image directory.

Cheers,
--
Joerg Jooss
news-re***@joergjooss.de
Author
18 Jan 2006 10:05 AM
Alex Greenberg
Thanks, I don't have control over the second approach, but the first
one worked perfectly.

Best,

Alex

Bookmark and Share