[mayaa-user:158] Re: URL と ファイルシステムの階層があわない場合のパス自動調整について

suga ko.suga @ gmail.com
2006年 4月 4日 (火) 22:42:45 JST


suga です。

>    ※ /context/css/base.css が出力したいパス
> こちらについて、アプリケーション側で対応する方法はありますでしょうか?

簡単な手としては、テンプレート側の相対パスを自然なものにすることです。
たとえば次の 2 つなどがあります。

a. css も MayaaServlet 経由で取得する
  /WEB-INF/pages/css/.... に置き、.css にも MayaaServlet をマッピング
  すると特に違和感なく動作すると思います。
  # content-type が html や xml でなければ素通しします。

b. 開発時は /WEB-INF/pages/ を使わず、デプロイ時に置き換える
  ant などで war にするときに配置を変える方法です。


> path.replaceFirst("^\\./(\\.\\./)*", ""); をして
> context を先頭に付加する実装でも良いかと思いますがいかがでしょうか?

context は常に残す形でも良いかもしれませんが、ケースとしては上記対応の
方が合っているのではないでしょうか。

context を常に残す場合、context の外を参照できないことになります。
その場合、静的なコンテンツ (css, 画像) は Web サーバに任せて……
のような場合が難しくなってしまうという難点があります。


PathAdjuster を置き換えることはできますので、それで個別対応することも
可能です。

# BuilderUtil の 現在の実装 (StringUtil 直接) はバグです。
# 本来は PathAduster#adjustRelativePath を使います。(現時点では同じ)
# 次のバージョンで直します。


--
suga ( ko.suga @ gmail.com )


mayaa-user メーリングリストの案内