use IO::File ();
use MIME::Types ();
-our $VERSION = '0.17';
+our $VERSION = '0.20';
__PACKAGE__->mk_accessors( qw/_static_file _static_debug_message/ );
# 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': $@" );
}
$c->_debug_msg( "404: file not found: $path" )
if $config->{debug};
$c->res->status( 404 );
+ $c->res->content_type( 'text/html' );
}
}
}
$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
$c->_debug_msg( "404: file not found: $full_path" )
if $config->{debug};
$c->res->status( 404 );
+ $c->res->content_type( 'text/html' );
return;
}
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
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
-C<MyApp-E<gt>config-E<gt>{static}-E<gt>{no_logs}> to 0.
+C<MyApp-E<gt>config-E<gt>{static}-E<gt>{logging}> to 1.
=head2 Forcing directories into static mode