Sumber daya statis dengan Richfaces 4.x

Saya memigrasikan aplikasi Web saya dengan Richfaces dari versi 3.3.3 ke 4.1 tetapi saya mengalami beberapa masalah dengan sumber daya statis (terutama gambar dan CSS). Saya tahu bahwa JSF2 memiliki mekanisme untuk melayani sumber daya semacam ini (meletakkan semuanya di bawah folder bernama 'sumber daya'). Sehubungan dengan ini saya punya dua pertanyaan:

  1. Apakah mungkin untuk mengubah folder ini ke folder lain?
  2. Apa yang terjadi dengan jalur relatif di CSS? Saya memiliki banyak gambar yang ditautkan dengan properti 'gambar latar' tetapi Richfaces 4.1 tidak menyelesaikannya dengan benar. Misalnya, saya memuat CSS saya, yang dialokasikan di /resources/css, dengan cara ini:

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

kalender.css berisi kelas ini:

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

Richfaces menyelesaikan url sebagai

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

Tapi menurutku memang seharusnya begitu

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

Terima kasih sebelumnya


person Sobrino    schedule 07.02.2013    source sumber


Jawaban (1)


  1. Ya, Anda dapat mengubahnya, folder src/main/webapp (dengan asumsi seperti itulah proyek Anda) akan menjadi /your-app di server dan Anda dapat menggunakan jalur absolut dari sana
  2. Itu karena h:outputStylesheet menempatkan sumber daya dalam semacam folder "abstrak" (saya tidak tahu secara spesifik tapi seperti itulah tampilannya) dan membiarkannya ditangani oleh servlet, lihat cara tautan stylesheet dikeluarkan. Ada beberapa cara untuk mengatasinya

    • Use an absolute path

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

    • atau jalur relatif untuk keluar dari folder "abstrak".

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

    • atau gunakan jalur relatif yang bisa ditangani servlet

    images/calendar/combined.gif.jsf?ln=css/wdCalendar (perhatikan .jsf yang merupakan pemetaan servlet default yang ditentukan di web.xml, ini mungkin terlihat berbeda di aplikasi Anda; tampilannya akan sama dengan tampilan tautan stylesheet Anda). Selain itu, tidak masalah bagian jalur mana yang ada di ln (bisa kosong) selama jalur tersebut benar jika Anda menggabungkannya.

person Makhiel    schedule 07.02.2013