X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FPlugin%2FStatic%2FSimple.pm;h=7dbf37e9fcae1cebda642e39425ce34363351226;hb=0495a29318d1867ec261ad7eb40192fdb12383e7;hp=aa0c732c3eb09483a109f7bb6abd48ddbdd38702;hpb=ab02ca0d1f663f389eef9d4b000c05392304c06a;p=catagits%2FCatalyst-Plugin-Static-Simple.git diff --git a/lib/Catalyst/Plugin/Static/Simple.pm b/lib/Catalyst/Plugin/Static/Simple.pm index aa0c732..7dbf37e 100644 --- a/lib/Catalyst/Plugin/Static/Simple.pm +++ b/lib/Catalyst/Plugin/Static/Simple.pm @@ -8,7 +8,7 @@ use File::Spec (); use IO::File (); use MIME::Types (); -our $VERSION = '0.17'; +our $VERSION = '0.20'; __PACKAGE__->mk_accessors( qw/_static_file _static_debug_message/ ); @@ -22,7 +22,11 @@ sub prepare_action { # is the URI in a static-defined path? foreach my $dir ( @{ $config->{dirs} } ) { my $dir_re = quotemeta $dir; - my $re = ( $dir =~ m{^qr/}xms ) ? eval $dir : qr/^${dir_re}/; + + # strip trailing slashes, they'll be added in our regex + $dir_re =~ s{/$}{}; + + my $re = ( $dir =~ m{^qr/}xms ) ? eval $dir : qr{^${dir_re}/}; if ($@) { $c->error( "Error compiling static dir regex '$dir': $@" ); } @@ -34,6 +38,7 @@ sub prepare_action { $c->_debug_msg( "404: file not found: $path" ) if $config->{debug}; $c->res->status( 404 ); + $c->res->content_type( 'text/html' ); } } } @@ -92,6 +97,7 @@ sub setup { $config->{ignore_dirs} ||= []; $config->{debug} ||= $c->debug; $config->{no_logs} = 1 unless defined $config->{no_logs}; + $config->{no_logs} = 0 if $config->{logging}; # load up a MIME::Types object, only loading types with # at least 1 file extension @@ -208,6 +214,7 @@ sub serve_static_file { $c->_debug_msg( "404: file not found: $full_path" ) if $config->{debug}; $c->res->status( 404 ); + $c->res->content_type( 'text/html' ); return; } @@ -266,9 +273,12 @@ Catalyst::Plugin::Static::Simple - Make serving static pages painless. use Catalyst; MyApp->setup( qw/Static::Simple/ ); - # that's it; static content is automatically served by - # Catalyst, though you can configure things or bypass - # Catalyst entirely in a production environment + # that's it; static content is automatically served by Catalyst + # from the application's root directory, though you can configure + # things or bypass Catalyst entirely in a production environment + # + # one caveat: the files must be served from an absolute path + # (ie. /images/foo.png) =head1 DESCRIPTION @@ -322,7 +332,7 @@ Since Catalyst 5.50, logging of static requests is turned off by default; static requests tend to clutter the log output and rarely reveal anything useful. However, if you want to enable logging of static requests, you can do so by setting -Cconfig-E{static}-E{no_logs}> to 0. +Cconfig-E{static}-E{logging}> to 1. =head2 Forcing directories into static mode