2005年9月 6日

周辺のちょっとしたものも含めてだいたい把握した気がするCGI::Application::Dispatch。便利です、すごく、とても。

ただ、今までCGI::Applicationを使う時はPATH_INFOを使わず、テンプレートファイルはインスタンスCGIと同じパスにおいてたので、テンプレートファイルをどこかひとつのディレクトリ以下にまとめる(CGI::Application::tmpl_path())、というのに全然まだ慣れません。

インスタンスCGIとテンプレートファイルを同じディレクトリにおくと、「URIの階層=ファイルのありか」になるので、HTML内のリンクを相対パスで書くのも気になりませんでした。

でも、CGI::Application::Dispatchを使う場合は、PATH_INFO形式を利用することが前提なうえ、URIが全部、

 http://example.com/dispatch.cgi/モジュール名/Runモード

な感じになります。階層が全部一緒です。こうなると、今までの「URIの階層=ファイルのありか」という方法でテンプレートを並べて、リンクURIを相対パスで書く、というのが不便になりました。URIたびたび間違うし…。

で、今のところ、

  • 相対パスは使わない
  • CGI::Application::tmpl_path()で指定するのはcgiがあるパスとは別のところ

という使い方をしてます。でも、絶対パスでリンクURIを書いたことがほとんどないので、URIがかわると全部置換する必要があるなぁ、なんてたぶん無用な不安を抱いたりもしています。この不安が解消されるまでは、しばらく右往左往しそうです。

どこかに、こういうディレクトリ構成のガイドとか、絶対パス・相対パスどっちできじゅつするのがよいかHowToみたいのはなかろうか…。うろうろ。

追記(2005/09/24) : こちらでDispatchについてまとめました

Comments

トラックバックに失敗したので、コメントに URI 残していきますね(404 Not Found と言われてしまいました^^;)
http://sky.taro-web.com/2005/09/07/000481

がーん。せっかくトラックバックいただいたのにすいませんm(_ _)m。

いつだったかReverseProxyの設定をごにょごにょ再設定してたときにRewriteの記述を不完全なまま放置してたみたいです…。さっき直したので今後もこれにめげずに(笑)トラバください。

トラックバック

トラックバックURL:

この一覧は、次のエントリーを参照しています: CGI::Application::Dispatch勉強中その2:

» PATH_INFOと相対パス(リンク) 送信元 blog.nomadscafe.jp
おまえのブログさんのエントリーCGI::Application::Dispatch勉強中その2で でも、CGI::Application::Dispatchを使... [詳しくはこちら]