वेब डिजाइनर दिया है मुझे एचटीएमएल जो लगता है कि:एक विकेट साझा संसाधन के लिए यूआरएल कैसे प्राप्त करें?
<div .... style="background: transparent url(xxx.png) 170px center no-repeat">
दुर्भाग्य छवि xxx.png
की सामग्री को सॉफ्टवेयर द्वारा उत्पन्न होता है, तो मैं इसे एक WebResource
बना दिया है और निम्नलिखित रणनीति का उपयोग करने के लिए URL उत्पन्न करने के लिए है संसाधन जो मैं style=
में विकेट AttributeModifier
का उपयोग करके विशेषता देता हूं।
// App initialization code
String resourceName = ....;
getSharedResources().add(resourceName, myWebResource);
// Creating the widget
String url = getServletContext().getContextPath()
+ "/resources/org.apache.wicket.Application/" + resourceName ;
String style = "background: transparent url(" + url + ") 170px center no-repeat";
div.add(new AttributeModifier("style", new Model<String>(style)));
जब मैं इसे स्थानीय स्तर पर ग्रहण का उपयोग कर का परीक्षण है, लेकिन यह ठीक काम करता है:
- जब मैं उत्पादन में इस स्थापित करते हैं, मैं ऐसा है कि संदर्भ जड़ प्रतिसाद नहीं जेट्टी के लिए अपाचे एक प्रॉक्सी के रूप में करना चाहते हैं ' टी दिखाई नहीं दे रहा है, यानी अपाचे
/foo
का अनुरोध जेटी पर/context-root/foo
के रूप में करता है। - सामान्यतः, मुझे नहीं लगता कि यह बहुत ही सुरुचिपूर्ण है। मुझे यकीन है कि मैं यहां विकेट कोड डुप्लिकेट कर रहा हूं?
मुझे लगता है कि विकेट संदर्भ-जड़ों और अपाचे प्रॉक्सी को केवल संबंधित यूआरएल का उपयोग करके हल करता है। मुझे संदेह है कि यह सबसे सुरुचिपूर्ण समाधान होगा। लेकिन अगर मेरे पास उदा। एक IndexedParamUrlCodingStrategy
तो यूआरएल मनमाने ढंग से लंबाई का हो सकता है और मुझे नहीं पता कि पर /resources
पर वापस जाने के लिए कितने शामिल हैं।
संपादित: वर्तमान समाधान ऊपर मेरी कोड उदाहरण के रूप में संपूर्ण URL के उपयोग करने के लिए है, और अपाचे में (क) को फिर से लिखने /*
में /context-root/*
(ख) तो पहले की तरह सभी अनुरोधों का संदर्भ जड़ जोड़ें (ग) आगे जेटी के लिए। इस तरह अधिकांश यूआरएल संदर्भ रूट के बिना हो सकते हैं लेकिन कुछ यूआरएल (मेरे संसाधनों में) में संदर्भ रूट हो सकता है और यह ठीक है। लेकिन मुझे यह समाधान पसंद नहीं है!
यह नहीं करता है ' प्रश्न का उत्तर नहीं देते, लेकिन आप अंतिम पंक्ति को थोड़ा सा सरल बना सकते हैं: 'नया SimpleAttributeModifier ("शैली", शैली) ' – Jonik
@ जोनिक, महान, +1 टिप के लिए धन्यवाद! –