相対パスとS2JSF

S2JSFでは、アプリケーション実行時のパスがHTMLの存在する実際のパスと同一である保証がないので、HTML中に相対パスを書くとリンク切れを起こしてしまうことがあります。

/pages
  /error
    sql_exception.html
  /images
    alert.gif
  search.html

例えば上の構成で、/pages/search.htmlから/pages/error/sql_exception.htmlにフォワードされたとき、sql_exception.htmlに次のような記述があるとリンク切れになります。

<img src="../images/alert.gif"/> <!-- NG -->

この問題は以下のようにすると解決できます。

<img m:inject="h:graphicImage" m:url="/pages/images/alert.gif"/>

ただ、デザイナーが仕上げてくるHTML中の画像リンクを1つ1つ変換する必要がある上、プレビューができなくなるので、せっかくのS2JSFのメリットを活かせなくなってしまいます。


追記: プレビューに関しては、src属性とm:url属性を両方指定すれば良い(src属性は実行時に無視される)ことに気付きました。