2012-07-16 4 views
5

Grails 2.0.4 का उपयोग करना। ईमेल बनाने में, मैं पूर्ण पथ के साथ कई छवियों का उपयोग करता हूं। प्रत्येक एक परेशान लॉग प्रविष्टि में परिणाम। क्या वहां कोई आसान उपाय है? वे मौजूद हैं, ऐसा लगता है कि संसाधन प्लगइन को पूर्ण पथ पसंद नहीं हैं। यह स्थानीयहोस्ट/देव पर्यावरण के बाहर भी होता है।पूर्ण छवियों का उपयोग करते समय Grails संसाधन चेतावनी लॉग प्रविष्टि: सत्य

<img src="${resource(dir: 'images/brochure', file: 'arrow_up.png', absolute: 'true')}" alt="Up" /> 

परिणाम

WARN resource.ResourceTagLib - Invocation of <r:resource> for a resource that apparently doesn't exist: http://localhost:8080/images/brochure/arrow_up.png 
+0

मैं भी Grails 2.3.4 के साथ इस अनुभव कर रहा हूँ। क्या तुम्हें कभी कोई हल मिला? – rcgeorge23

+0

मैंने Grails JIRA को एक मुद्दा प्रस्तुत किया: http://jira.grails.org/browse/GPRESOURCES-256 – Klemens

+0

मुझे एक समाधान मिला, मेरा अपना उत्तर – Peter

उत्तर

3

समाधान जो Grails 2.1.x और ऊपर (नवीनतम 2.3.x समेत) के लिए मेरे साथ काम कर रहा है, इन प्रविष्टियों को Config.groovy में आपके log4j कॉन्फ़िगरेशन ब्लॉक में जोड़ रहा है - कोई अन्य कोड परिवर्तन आवश्यक नहीं है।

log4j = { 
      //your other stuff ... 
      error 'grails.app.services.org.grails.plugin.resource' 
      error 'grails.app.taglib.org.grails.plugin.resource' 
      error 'grails.app.resourceMappers.org.grails.plugin.resource' 
} 
-1

में uou 'grails-संसाधन' प्लगइन का उपयोग कर रहे हैं। इसमें 'संसाधन' भी टैग किया गया है। प्रत्यक्ष जी टैग का उपयोग करने का प्रयास करें:

<img src="${g.resource(dir: 'images/brochure', file: 'arrow_up.png', absolute: 'true')}" alt="Up" /> 

या संसाधनों प्लगइन से आर-टैग का उपयोग करें (अनुशंसित):

<img src="${r.resource(uri: 'images/brochure/arrow_up.png')}" /> 

अधिक जानकारी here

+0

देखें जो दोनों बस संसाधन प्लगइन – Peter

+1

संख्या में प्रतिनिधि हैं। मैंने सीधे परिभाषा के लिए नेमस्पेस का उपयोग किया। यदि संसाधन-प्लगइन स्थापित है 'संसाधन' टैग डिफ़ॉल्ट रूप से 'आर' नेमस्पेस से जुड़ा हुआ है। – jenk

0

जाओ मैं जानता हूँ कि यह एक पुराने सवाल यह है कि, लेकिन यह अभी भी Grails 2.3.x के साथ एक मुद्दा प्रतीत होता है। ResourceTagLib में resource बंद ऊपर टिप्पणी है कि कहते हैं नहीं है:

इस @todo वर्तमान में पूर्ण = "true" आमंत्रण के लिए काम नहीं करेगा, यह सिर्फ इन

पासथ्रू चाहिए निकालने के लिए लॉग में चेतावनी, मैं resource बंद overrode, इस बिट बदल रहा है:

... 
if (!info.debug && log.warnEnabled) { 
    log.warn "Invocation of <r:resource> for a resource that apparently doesn't exist: ${info.uri}" 
} 
... 
इस के लिए

:

... 
if (attrs.absolute != true && !info.debug && log.warnEnabled) { 
    log.warn "Invocation of <r:resource> for a resource that apparently doesn't exist: ${info.uri}" 
} 
... 
+2

क्या आप समझा सकते हैं कि आपने यह परिवर्तन कहां किया है? – nuoritoveri

0

यह तभी हो जब आप जब dir परम का उपयोग कर एक उप निर्देशिका का उपयोग करने की कोशिश दिखाई देता है। आपको uri निर्दिष्ट करना होगा। मुझे लगता है कि dir केवल एक स्तर की निर्देशिका हो सकती है।

आप की कोशिश कर सकते निम्नलिखित (plugin docs से):

<r:img uri="images/logo.png" width="100" height="50"/> 
संबंधित मुद्दे