On 10/10/2007, Will Hawes <[EMAIL PROTECTED]> wrote:
>
> With Catalyst::Plugin::Static::Simple loaded, when I request a path like
> '/static/non-existent-file', the plugin does stuff like $c->res->status(404)
> for me by default. However, as I already have the following in
> MyApp::Controller::Root:
>
> sub default : Private {
>   my( $self, $c ) = @_;
>   $c->res->status( 404 );
>   $c->res->body( ...  );
> }
>
> I'd like to use my existing default action to display something a bit more
> user friendly when the requested static file is missing. In this case I'm
> using the test server so bypassing Catalyst::Plugin::Static::Simple
> completely is not an option.
>
> What's the correct way to implement the above?


It seems as though the answer is to comment out the following in
Catalyst::Plugin::Static::Simple (version 0.20):

$c->_debug_msg( "404: file not found: $path" )
  if $config->{debug};
$c->res->status( 404 );
$c->res->content_type( 'text/html' );

Setting a HTTP status code other than 200 causes
Catalyst::Plugin::Static::Simple::dispatch to bail out immediately, so
Catalyst::Dispatcher::dispatch never gets called for a missing static file.
Any default action in the app's root controller is ignored as a result.

Would a patch to remove the above lines (or at least make the behaviour
configurable) be welcome?
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[EMAIL PROTECTED]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to