久しぶりにCatalyst小ネタでも書いてみるか。
リクエストの取り扱いは現在、「静的ファイルがあったらそれを返し、無かったらバックエンドのCatalystに飛ばす」って感じで落ち着いています。
Apacheならmod_rewrite、lighttpdならserver.error-handler-404とかで。
CatalystTestServerではC::P::Static::Simpleを使うことになるんだけど、これはDirectoryIndexを実現できない。
なのでやる気ない感じでちょっと書いた。
とりあえずindex.html固定で。
たまたまprepare_parametersをいじってることがあったのでそこに書いた。(prepare_path以降ならどこでもいい)
sub prepare_parameters { my $c = shift; $c->NEXT::prepare_parameters; # DirectoryIndex my $path = $c->path_to( 'root', $c->req->path ); if ( -d $path && -f $path->file('index.html') ) { $c->req->path( $c->req->path . '/index.html' ); } return; }
C::P::Static::Simpleを拡張して作る方がいいかもね。