[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 メーリングリストの案内