0

Richfaces を使用する Web アプリケーションをバージョン 3.3.3 から 4.1 に移行していますが、静的リソース (主に画像と CSS) にいくつかの問題があります。JSF2には、この種のリソースを提供するメカニズムがあることを知っています(すべてを「resources」という名前のフォルダーの下に置きます)。これに関して、私は2つの質問があります:

  1. このフォルダを別のフォルダに変更することはできますか?
  2. CSS で相対パスを使用するとどうなりますか? 「background-image」プロパティにリンクされた多くの画像がありますが、Richfaces 4.1 はそれらを正しく解決しません。たとえば、/resources/css に割り当てられた CSS を次のようにロードします。

    < h:outputStylesheet library="css" name="wdCalendar/calendar.css"/>

calendar.css には次のクラスが含まれます。

.cic {
   background-repeat: no-repeat;
   display: inline-block;
   background-image: url(images/calendar/combined.gif);
}

Richfaces は URL を次のように解決します。

http://nameApp/servletApp/javax.faces.resource/wdCalendar/images/calendar/combined.gif

でもそうあるべきだと思う

http://nameApp/servletApp/resources/css/wdCalendar/images/calendar/combined.gif

前もって感謝します

4

1 に答える 1

0
  1. はい、変更できます。src/main/webappフォルダ(プロジェクトでの外観を想定)が/your-appサーバー上にあり、そこから絶対パスを使用できます。
  2. これは、h:outputStylesheetがリソースを一種の「抽象」フォルダーに配置し(詳細はわかりませんが、そのように見えます)、サーブレットで処理できるようにするためです。スタイルシートのリンクが出力される方法を確認してください。これからいくつかの方法があります

    • 絶対パスを使用する

    /your-app/resources/css/wdCalendar/images/calendar/combined.gif

    • または「abstract」フォルダから抜け出すための相対パス

    ../resources/css/wdCalendar/images/calendar/combined.gif

    • または、サーブレットが処理できる相対パスを使用します

    images/calendar/combined.gif.jsf?ln=css/wdCalendar (web.xmlで定義されているデフォルトのサーブレットマッピングである.jsfに注意してください。アプリでは異なって見える場合があります。スタイルシートのリンクと同じように見えるはずです)。lnまた、パスを組み合わせると正しいパスである限り、パスのどの部分が(空の場合もあります)含まれているかは関係ありません。

于 2013-02-07T14:47:17.553 に答える