Catalyst Advent - Day 23 - Static::Simple
Introduction
Static::Simple is a plugin that will help to serve static content for your application. By default, it will serve most types of files, excluding some standard Template Toolkit extensions, out of your root file directory. All files are served by path, so if images/me.jpg is requested, then root/images/me.jpg is found and served.
Usage
Using the plugin is as simple as setting your use line in MyApp.pm to:
use Catalyst qw/Static::Simple/;
and already files will be served.
Configuring
- Include Path
-
You may of course want to change the default locations, and make Static::Simple look somewhere else, this is as easy as:
MyApp->config->{static}->{include_path} = [ MyApp->config->{root}, '/path/to/my/files' ];
When you override include_path, it will not automatically append the normal root path, so you need to add it yourself if you still want it. These will be searched in order given, and the first matching file served.
- Static directories
-
If you want to force some directories to be only static, you can set them using paths relative to the root dir, or regular expressions:
MyApp->config->{static}->{dirs} = [ 'static', qr/^(images|css)/, ];
- File extensions
-
By default, the following extensions are not served: tmpl, tt, tt2, html, xhtml. This list can be replaced easily:
MyApp->config->{static}->{ignore_extensions} = [ qw/tmpl tt tt2 html xhtml/ ];
- Ignoring directories
-
Entire directories can be ignored. If used with include_path, directories relative to the include_path dirs will also be ignored:
MyApp->config->{static}->{ignore_dirs} = [ qw/tmpl css/ ];