2011-03-25 17 views
8

मैं जावा सर्वर करने के लिए नया हूँ चेहरे और मैं निम्न कार्य करने की कोशिश कर रहा हूँ:लोड JSF में सीएसएस संसाधनों के भीतर से छवियाँ 2.0

टेम्पलेट फ़ाइल "/template.xhtml" एक स्टाइलशीट

<h:outputStylesheet library="style" name="default.css" /> 
का उपयोग कर लोड हो जाता है

कि सीएसएस फ़ाइल मैं बहुत तरह छवियों लिंक करना चाहते हैं के भीतर:

... background-image: url(LINK_TO_MY_IMAGE) ... 

मैं उस छवि कैसे संदर्भ है (मैं LINK_TO_MY_IMAGE में क्या लिखना चाहिए)? मैंने पहले से ही सीधे लिंक (/contextroot/resources/images/foo.png) और जेएसएफ संसाधन नोटेशन (/contextroot/faces/javax.faces.resource/foo.png?ln=images) का उपयोग करने का प्रयास किया है। ।

मेरे निर्देशिका संरचना:

/resources/images => contains image files 
/resources/style/default.css 
/WEB-INF/web.xml 
/WEB-INF/faces-config.xml 
/template.xhtml 
/demoPage.xhtml => uses the template.xhtml 

तो, मेरी समस्या अब तक कि मैं हमेशा लोड हो रहा है कि छवियों के लिए मिल एक "404 नहीं मिला है।" आपके XHTML

<link href="#{facesContext.externalContext.requestContextPath}/resources/style/default.css" rel="stylesheet" type="text/css" /> 

और सीएसएस

background-image: /resources/images/someName.png 

उत्तर

7

जोड़ें सीएसएस ज्यादा प्रयोग इस सीएसएस में काम करता है के बाद:

url("msgError.gif.xhtml?ln=images") 

ऊपर में, msgError.gif है मेरी संसाधन /resources/images/msgError.gif में स्थित मेरा मानना ​​है कि .xhtml सिर्फ JSF FacesServlet उपयोग करने के लिए प्रयोग किया जाता है (web.xml देख)

<servlet-mapping> 
    <servlet-name>FacesServlet</servlet-name> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 

"ln" पुस्तकालय का नाम है।

+0

आप सही हैं, धन्यवाद। मेरे पास बस मेरी सीएसएस फ़ाइल में एक टाइपो था .. –

+0

लेकिन ... शुरुआत में एक "/" जोड़ना संदर्भ रूट y Tomcat के रूप में संदर्भित नहीं करेगा? मेरा मतलब। यदि आपके पास /myplplication के तहत तैनात आवेदन है, तो क्या यह समाधान काम करेगा? अग्रिम धन्यवाद – frandevel

8

में में

+14

आपको '# {resource}' का उपयोग करना चाहिए। यह भी देखें http://stackoverflow.com/questions/6925733/changing-the-image-of-a-hcommandbutton-using-css/6926193#6926193 – BalusC

+0

टिप और लिंक के लिए धन्यवाद! –

0

मुझे नहीं पता कि इतने सारे तरीके क्यों हैं ... लेकिन यहां एक और रास्ता है जो इनलाइन सीएसएस के साथ काम करता है।

<div style="background-image: url('/javax.faces.resource/images/someName.png.xhtml');"> 
    Text to Display 
</div> 
0

एस.ए.एस.एस. (एससीएसएस) mixin

//----------------------------------------------------------------------------- 
// resource_url function returns the parameter as url(#{resource['<parameter>']}) 
// and should be used instead of CSS url() or compass image_url() in JSF applications. 
// Define JSF Resource Library resource['standard: 

@function resource_url($url) { 
    @return url + "(\#{resource['test:#{$url}']})"; 
} 

उपयोग:

background: resource_url('img/footer_trenner.gif') no-repeat center left; 
संबंधित मुद्दे