# things or bypass Catalyst entirely in a production environment
#
# one caveat: the files must be served from an absolute path
- # (ie. /images/foo.png)
+ # (i.e. /images/foo.png)
=head1 DESCRIPTION
=head1 USING WITH APACHE
-While Static::Simple will work just fine serving files through Catalyst in
-mod_perl, for increased performance, you may wish to have Apache handle the
-serving of your static files. To do this, simply use a dedicated directory
-for your static files and configure an Apache Location block for that
-directory. This approach is recommended for production installations.
+While Static::Simple will work just fine serving files through Catalyst
+in mod_perl, for increased performance you may wish to have Apache
+handle the serving of your static files directly. To do this, simply use
+a dedicated directory for your static files and configure an Apache
+Location block for that directory This approach is recommended for
+production installations.
- <Location /static>
+ <Location /myapp/static>
SetHandler default-handler
</Location>
application, and it will continue to function on a development server,
or using Catalyst's built-in server.
+In practice, your Catalyst application is probably (i.e. should be)
+structured in the recommended way (i.e., that generated by bootstrapping
+the application with the C<catalyst.pl> script, with a main directory
+under which is a C<lib/> directory for module files and a C<root/>
+directory for templates and static files). Thus, unless you break up
+this structure when deploying your app by moving the static files to a
+different location in your filesystem, you will need to use an Alias
+directive in Apache to point to the right place. You will then need to
+add a Directory block to give permission for Apache to serve these
+files. The final configuration will look something like this:
+
+ Alias /myapp/static /filesystem/path/to/MyApp/root/static
+ <Directory /filesystem/path/to/MyApp/root/static>
+ allow from all
+ </Directory>
+ <Location /myapp/static>
+ SetHandler default-handler
+ </Location>
+
=head1 PUBLIC METHODS
=head2 serve_static_file $file_path