NanoAについては、ローカル環境で色々と試行錯誤しているわけだが、元々のサンプルを参考にしたいので、できるだけ元の状態を保っておきたいと思っているのだが、なかなか思うように行かない。
で、ソースを読んでいたら、appディレクトリの下にindexというディレクトリを作ってやれば、そちらを読んでくれそうだったので試してみた。
ローカル環境では、サーバーポートは80以外でやっているのだが、元々のDispatch.pmではポートのことを考慮していないようだった。
修正したらうまくいったので参考までに。
Index: Dispatch.pm
===================================================================
--- Dispatch.pm (リビジョン 36612)
+++ Dispatch.pm (作業コピー)
@@ -9,7 +9,8 @@
my $handler_path = substr($ENV{PATH_INFO} || '/', 1);
if ($handler_path eq '' && -d 'app/index') {
- print "Status: 302\nLocation: $ENV{SCRIPT_NAME}/index/\n\n";
+ my $uri = NanoA::nanoa_uri;
+ print "Status: 302\nLocation: $uri/index/\n\n";
CGI::ExceptionManager::detach();
}
$handler_path =~ s{\.\.}{}g;
これで、nanoa.cgiにアクセスしても、nanoa.cgi/index/にリダイレクトされるようになった。
このおかげで、トップページがアプリケーションの一つとして管理できるので、headerやfooterを含め、スタイルシートを使ったレイアウトの切り替えが簡単になった。
こんなところまで考えてあったんだなぁ。
あと、nanoa.cgiと同じ場所にstaticディレクトリを作って、スタイルシートをそっちにおくようにした。
app以下のアプリケーションディレクトリにそのまま入れて使うことで、アプリケーションごとに管理するのが普通だろうけど、systemに入っているスタイルシートを共通で使うのではなく、共通で使うスタイルシートや、JavaScript等を置いておく場所を作りたかったので。
あと、オリジナルをそのままの状態で運営することで、NanoAが急激に進化したときでも入れ替えをスムーズに出来るかなぁと。


コメントする