Po prostu miałem ten sam problem z JSF 2.0. Musiałem użyć css i rozwiązanie z względną ścieżką też nie działało dla mnie (tak jak opublikował Choghere).
W mojej książce przeczytałem, że , gdy używasz Facetów jako VDL (View Declaration Language), można używać wyrażeń nawet na zwykłej stronie HTML. Więc wpadłem na pomysł, aby umieścić EL bezpośrednio w moich css. Uwaga: nie musiałem zmieniać nazwy pliku ani niczego.
Oto co zrobiłem. ale najpierw mój filestructure
- /resources/common/overlay.xhtml -> ten liście ostoi następujące css (ITS kompozyt komponentu)
- /resources/common/overlay.css
- /zasoby/obrazy/logo.PNG
Teraz tutaj jest CSS
.someclass {
background-image:url("#{resource['images:logo.png']}");
}
w tym przypadku zasób jest niejawna przedmiot z JSF 2, zdjęć jest biblioteka gdzie JSF powinien wyglądać (JSF oczekuje wszystkie biblioteki/pliki w zasobach, przynajmniej domyślny ResourceHandler), a następnie nazwa zasobu.
Dla głębszych struktur byłoby
#{resource['images/folder:logo.png']}
nadzieję, że pomoże;)
Potrzebowałem tylko dwóch kropek przed /images/the_image.gif. Dziękuje bardzo! – user125157
nie jest to poprawna odpowiedź dla JSF. Zobacz odpowiedź poniżej, która ma 23 głosów –
+1 DLA 'background-image: url (" ../ images/the_image.gif ");' – kark