wtorek, 20 września 2011

NetBeans, facelets, jsf i znikający css.

Gdy w projekcie opartym o JSF, umieścimy klientów template, w innych katalogach niźli sam template, to szybko może się okazać, że całe opisanie strony w przywołanych w template plikach css, nie pokazuje się wcale w stronach "klienckich".

Objaw: na stronach będących klientami template, brak formatowania css.

Dzieje się tak z powodu sposobu zapisu odwołania do arkuszy stylów css, jaki stosuje wizard NetBeans przy tworzeniu template. Ten sposób to:
<link href="./resources/css/default.css" rel="stylesheet" type="text/css"/>
Zapis powyższy wskazuje, iż arkusz stylów (styli) (ze stylami) znajduje się w podkatalogu "/resources/css" katalogu aktualnie wyświetlanej strony.

Gdy strona znajduje się w innym katalogu niż template, którego jest klientem, nie ma mowy aby zostały na niej zobaczone style css, włączone w templacie.

Rozwiązaniem jest zmiana wskazania arkuszy css w template, na następujące:
<h:outputStylesheet name="default.css" library="css"/>
Wówczas jeśli "default.css znajduje się w podkatalogu /resources/css stron www, style css będą widoczne w stronach klienckich.

Brak komentarzy:

Prześlij komentarz