This class takes care of serving out static files for a Jifty application.
When fully operational, it will use an algorithm along the lines of the following:
* Static files are served out of a separate root * If static files go through apache: * How do we merge together the two static roots? * If static files go through Jifty::Handler * We need a flag to allow them to go through the dispatcher, too * return "True" (304) for if-modified-since unless develmode. * if the browser accepts gzipped data, see if we have a cached gzipped copy if so, send it see if we have a marker indicating that gzip is a lose if so, send uncompressed
gzip the content send the gzipped content * if the browser doesn't accept gzipped content send the content uncompressed
Create a new static file handler. Likely, only the
Jifty::Handler needs to do this.
Handle a request for
$path. If we can't find a static file of that name, return undef.
Returns true if it looks like the client accepts gzip encoding. Otherwise, returns false.
Returns the system path for
$path, inside the application's static root or, failing that, Jifty's static root. Returns undef if it can't find the file in either path.
Returns the mime type of the file whose path on disk is
$path. Tries to use MIME::Types to guess first. If that fails, it falls back to
$path to STDOUT (the client), identified with a mimetype of
gzip, gzip the output stream.
Sends a "304 Not modified" response to the browser, telling it to use a cached copy.