Tim, I don't know a lot about mod_perl, but I would guess you may want to look at invoking a subrequest via lookup_file or lookup_uri. E.g.
my $ct = $r->lookup_uri('images/logo.tif')->content_type; regards John John Kelly IBM Hursley "Tim Noll" <[EMAIL PROTECTED]> 05/02/2002 12:21 To: <[EMAIL PROTECTED]> cc: Subject: image corruption I'm attempting to use mod_perl and Template Toolkit to serve up templates. However, I'm having a problem with the images in those templates: They're passing through the content handler, and thus getting corrupted. My first thought was to return DECLINED from the content handler if the request is not for text/html content; however, since I'm using a Location directive, the content_type is always empty since there's no direct mapping to an actual image file. I could use an Alias to map the URI to the file, but then I wouldn't have the path_info that I'm using to call the template. Since my test code, using path_info, is based on an example from the Template Toolkit docs, I feel like I'm probably overlooking something basic. So, I'd appreciate it if someone could show me the error of my ways. :-) Here are the relevant chunks of config and code: from httpd.conf --------------- ... <Location /tt> SetHandler perl-script PerlHandler Apache::Test::Mod PerlSetVar WEBROOT /usr/local/apache/tt/html </Location> ... Apache::Test::Mod ----------------- ... sub handler { my $r = shift; # this doesn't work #return DECLINED unless $r->content_type eq 'text/html'; my $WEBROOT = $r->dir_config('WEBROOT') or return fail( $r, SERVER_ERROR, "'WEBROOT' not specified" ); my $file = $r->path_info; my $vars = { content => $r->content_type, }; $r->content_type('text/html'); $r->no_cache(1); my $template = Template->new( { INCLUDE_PATH => "$WEBROOT:$WEBROOT/include", OUTPUT => $r, } ); $template->process( $file, $vars, $r) or return fail( $r, SERVER_ERROR, $template->error ); $r->send_http_header(); $r->print( $output ); return OK; } ... index.html (test template) -------------------------- <html> <head> <title>test</title> </head> <body> <p>content_type: [% content %]</p> <p>image: <img src="images/hello.gif"></p> </body> </html> Thanks. -Tim