[Catalyst] serving static content from one controller?

Mitchell Jackson mitch.lists at onsitesquad.com
Fri Oct 5 16:53:13 GMT 2007


Static::Simple seems to have some configuration options to force certain 
paths as static only
Practical examples can be found here 
http://search.cpan.org/~jrockway/Catalyst-Manual-5.701002/lib/Catalyst/Manual/Cookbook.pod#Serving_static_content

 MyApp->config->{static}->{dirs} = [
   'static',
   qr/^(images|css)/,
 ];



If you're serving your app under apache, you can set an Alias directive 
that bypasses catalyst for your static content.

        DocumentRoot  /var/www/APP/root
        Alias / /tmp/app.fcgi/
        Alias /static /var/www/APP/root/static

If you want to serve from your /public controller because static simple 
doesn't do something you want, you might use something like this

sub index : Private {
    my $self = shift;
    my $c    = shift;

    my $static_fn = $c->path_to( 'public', @_ );
    if ( -e $static_fn ) {
       $c->serve_static_file( $static_fn );
    }
    else {
       $c->detach( 'error404' );
    }
}
sub error404 : Private {
    my ( $self, $c ) = @_;
    $c->res->redirect( $c->uri_for('/'));
    $c->detach();
}

For more help, read over the documentation on deployment, starting with 
the cookbook:  
http://search.cpan.org/~jrockway/Catalyst-Manual-5.701002/lib/Catalyst/Manual/Cookbook.pod#Deployment

/Mitch

Dustin Suchter wrote:
> So I've got what has to be a pretty common problem: I've built a
> system that is 95% behind some authentication, and 5% public. I'd
> like to have the entire public portion be static HTML files that are
> all served from the '/public/' directory. I've created a "Public"
> controller and the corresponding directory to hold static HTML
> content. I've also modified the system such that either the Public
> controller or the Login controller can be access by unauthenticated
> users.
>
> How do I go about serving the static pages, for example my page
> "books_intro.html"?
>
> I've looked into "Static::Simple", but I can't find a good
> manual/tutorial on it. I've tried to guess at how to use it but I
> pretty much didn't get anywhere.
>
> thanks,
> -d
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
>   



More information about the Catalyst mailing list