Skip to content

bleargh45/Apache2-Filter-Minifier-CSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Apache2::Filter::Minifier::CSS - CSS minifying output filter

SYNOPSIS

<LocationMatch "\.css$">
    PerlOutputFilterHandler   Apache2::Filter::Minifier::CSS

    # if you need to supplement MIME-Type list
    PerlSetVar                CssMimeType  text/plain

    # if you want to explicitly specify the minifier to use
    #PerlSetVar               CssMinifier  CSS::Minifier::XS
    #PerlSetVar               CssMinifier  CSS::Minifier
    #PerlSetVar               CssMinifier  MY::Minifier::function
</LocationMatch>

DESCRIPTION

Apache2::Filter::Minifier::CSS is a Mod_perl2 output filter which minifies CSS using CSS::Minifier or CSS::Minifier::XS.

Only CSS style-sheets are minified, all others are passed through unaltered. Apache2::Filter::Minifier::CSS comes with a list of known acceptable MIME-Types for CSS style-sheets, but you can supplement that list yourself by setting the CssMimeType PerlVar appropriately (use PerlSetVar for a single new MIME-Type, or PerlAddVar when you want to add multiple MIME-Types).

Given a choice, using CSS::Minifier::XS is preferred over CSS::Minifier, but we'll use whichever one you've got available. If you want to explicitly specify which minifier you want to use, set the CssMinifier PerlVar to the name of the package/function that implements the minifier. Minification functions are expected to accept a single parameter (the CSS to be minified) and to return the minified CSS on completion. If you specify a package name, we look for a minify() function in that package.

Caching

Minification does require additional CPU resources, and it is recommended that you use some sort of cache in order to keep this to a minimum.

Being that you're already running Apache2, though, here's some examples of a mod_cache setup:

Disk Cache

# Cache root directory
CacheRoot /path/to/your/disk/cache
# Enable cache for "/css/" location
CacheEnable disk /css/

Memory Cache

# Cache size: 4 MBytes
MCacheSize 4096
# Min object size: 128 Bytes
MCacheMinObjectSize 128
# Max object size: 512 KBytes
MCacheMaxObjectSize 524288
# Enable cache for "/css/" location
CacheEnable mem /css/

METHODS

  • handler($filter)

    CSS minification output filter.

AUTHOR

Graham TerMarsch (cpan@howlingfrog.com)

Many thanks to Geoffrey Young for writing Apache::Clean, from which several things were lifted. :)

COPYRIGHT

Copyright (C) 2007, Graham TerMarsch. All Rights Reserved.

This is free software; you can redistribute it and/or modify it under the same license as Perl itself.

SEE ALSO