2013-02-07 55 views
0

我正在將我的Web應用程序與Richfaces從3.3.3版本遷移到4.1,但我在靜態資源(主要是圖像和CSS)方面遇到了一些問題。我知道JSF2有一種機制來服務這種資源(把它們放在一個名爲'resources'的文件夾下)。關於這個問題,我有兩個問題:使用Richfaces 4.x的靜態資源

  1. 是否有可能將此文件夾更改爲另一個?
  2. CSS中的相對路徑會發生什麼?我有許多圖像與'background-image'屬性鏈接,但Richfaces 4.1無法正確解析它們。例如,我打開我的CSS,在/資源/ CSS分配,就這個樣子:

    < H:outputStylesheet庫= 「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 

不過,我想它應該是提前

回答

0
  1. 是的,你可以改變它的src/main/webapp文件夾(假設這就是它看起來像在您的項目)將成爲服務器上/your-app,你可以使用絕對

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

    謝謝從那裏的路徑

  2. 這是因爲h:outputStylesheet將資源放在一個「抽象」文件夾(我不知道具體細節,但它看起來像),並讓它由servlet處理,看看樣式錶鏈接的輸出方式。有幾種方法了絕對路徑

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

    • 或相對路徑的這個

      • 使用走出 「抽象」 文件夾

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

      • 或使用該servlet可以處理

      images/calendar/combined.gif.jsf?ln=css/wdCalendar (注意.jsf這是在web.xml中定義的默認servlet映射相對路徑,它看起來可能會在您的應用程序不同;它應該看起來像樣式錶鏈接看起來一樣)。另外,如果將路徑放在一起,只要它是正確的路徑,那麼路徑的哪一部分在ln(它可以是空的)並不重要。