[Zope] Missing pictures
Dieter Maurer
dieter@handshake.de
Thu, 24 Aug 2000 22:10:25 +0200 (CEST)
William JOYE writes:
> I have notified that every time on my web page one picture is missing (with
> IE and Netscape). When I refresh the page there is another picture missing
> and the first is OK. After another refresh, the first is missing and the
> second is OK. And so on...
>
> I use Apache and Zope 2.1.6 under Linux. In the Apache log, I have notified
> that http code is always 304 but when pictures are missing in web page the
> transferred size is '-' and no '0'.
Interesting!
Recently, I tried to locate a very similar (though not that well
reproducible) problem. It may well be the same problem.
My problem really confused me:
Netscape showed a broken image for each "reload".
When I verified the Zope result with an httplib
application (this is a Python module to generate
HTTP request), I got a perfect 304 response.
No hint whatsoever on any Zope problem.
Print statements in "OFS.Image.index_html" demonstrated
that Zope received a request with an "If-Modified-Since"
header and that it decided that it has no newer image.
Thus, it responded with status 304. This is correct.
When I did a forced reload (i.e. Shift-Reload), the image
was shown correctly. From then on, a normal reload
showed the image correctly, too.
The forced reload leads to a request without "If-Modified-Since".
For such a request, Zope returns the image in a standard
status 200 response.
I can only make some sense of this, when I assume that somehow
Netscape has associated the image with the broken image in
its cache.
I was determined to track this problem down at home.
However, I was unable to reproduce it. This is to
be expected when the problem has to do with the
browser cache. Of cause, it is different at home
than at work.
However, many people report similar problems. So, probably,
Zope sometimes does something strange with images that
confuses browsers, maybe let them associate an image
permanently with a broken image in their cache.
Because the behaviour you reported seems to be reproducible,
we may have a change to determine the cause.
If you are willing to track this problem down, I may
give some hints about instrumentation and maybe debugging.
Dieter