[Zope-dev] ZopeBug: No Last-Modified for misc_/.../*.gif objects!!!!

The Doctor What docwhat@gerf.org
Wed, 15 Nov 2000 13:20:26 -0600


--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

I was looking at the cacheability of my website in zope, and saw
that the misc_/OFSP/*.gif images (as in the icon objects) are 
NOT cacheable because they don't return *any* date info.  If they
*at least* returned a Last Modified, they'd be cacheable.

I looked at the Zope Source and it looks like misc_.py just calls
ImageFile objects.  Why aren't the ImageFile objects setting these
header info bits correctly?   I'm not very knowledgable about Zope
inside, but this seems like it should be happening.

A side effect of fixing this problem would be that the manage
screens would suddenly work much faster since the icons would not
need to be reloaded EVERY time!!

Here is the HEAD info from two ImageFile objects.  The first is in
the folder images which has a SiteAccess object that forces the
Cache-Control object, a normal Image would not have the
Cache-Control line.  The second is a misc_.py object:

checkhead http://docwhat.gerf.org:9673/images/thedoctorwhat 
HTTP/1.0 200 OK
Server: Zope/Zope 2.2.2 (source release, python 1.5.2, linux2)
ZServer/1.1b1
Date: Wed, 15 Nov 2000 19:06:23 GMT
Cache-Control: public, max-age=86400
Connection: close
Content-Type: image/png
Content-Length: 21717
Last-Modified: Wed, 15 Nov 2000 03:14:17 GMT

checkhead http://docwhat.gerf.org:9673/misc_/OFSP/Folder_icon.gif 
HTTP/1.0 200 OK
Server: Zope/Zope 2.2.2 (source release, python 1.5.2, linux2)
ZServer/1.1b1
Date: Wed, 15 Nov 2000 19:06:37 GMT
Connection: close
Content-Type: image/gif
Content-Length: 903

I have attached by stupid checkhead program.

Ciao!

-- 
I'd horsewhip you if I had a horse.
	-- Groucho Marx

The Doctor What: Second Baseman                  http://docwhat.gerf.org/
docwhat@gerf.org                                                   KF6VNC

--k+w/mQv8wyuph6w0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=checkhead

#!/usr/bin/perl -w
$| = 1;
use strict;

delete $ENV{'http_proxy'};

my $wget = "wget -q -s -O - " . join( ' ', @ARGV ) . "|";

open( FOO, $wget ) or die "Unable to run ``$wget'': $!";
while( <FOO> ) {
    if( /^\s*$/ ) { last; }
    print $_;
}
close( FOO );

--k+w/mQv8wyuph6w0--