2012-07-16 9 views
5

Uso di Grails 2.0.4. Nella costruzione di e-mail, utilizzo molte immagini con percorsi assoluti. Ognuno si traduce in una voce di registro fastidioso. C'è una soluzione semplice? Esse esistono, sembra solo che il plugin della risorsa non ami i percorsi assoluti. Questo accade anche al di fuori dell'ambiente localhost/dev.Voce del registro di avviso delle risorse Grails quando si utilizzano le immagini con assoluto: true

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

risultati in

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

Sto anche sperimentando questo con Grails 2.3.4. Hai mai trovato una soluzione? – rcgeorge23

+0

Ho inviato un problema al JIRA di Grails: http://jira.grails.org/browse/GPRESOURCES-256 – Klemens

+0

Ho trovato una soluzione, vedere la mia risposta – Peter

risposta

3

La soluzione che ha funzionato con me per Grails 2.1.xe versioni successive (incluso il più recente 2.3.x) sta aggiungendo queste voci al blocco di configurazione log4j in Config.groovy - non sono necessarie altre modifiche al codice.

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 stanno utilizzando plugin 'Grails-risorse. Ha anche tag 'risorse'. provare a utilizzare direttamente G-tag:

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

o utilizzare R-tag dal plugin di risorse (consigliato):

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

ottenere maggiori informazioni here

+0

Questi entrambi delegano semplicemente al plugin delle risorse – Peter

+1

no. ho usato namespace per dirigere la definizione. Se il plugin di risorse è installato, il tag 'resource' è associato al namespace 'r' per impostazione predefinita. – jenk

0

So che questa è una vecchia questione, ma sembra ancora essere un problema con Grails 2.3.x. C'è commento di cui sopra la chiusura resource in ResourceTagLib che dice:

@todo questo momento non funziona per assoluti = invocazioni "veri", si deve solo passthrough questi

Al fine di rimuovere il avvertenze nel registro, ho sovrascritto chiusura resource, cambiando questo bit:

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

a questo:

+2

Puoi spiegare dove hai apportato questa modifica? – nuoritoveri

0

sembra accadere solo quando si tenta di utilizzare una sottodirectory quando si utilizza il dir param. Dovresti specificare un uri. Suppongo che dir possa essere solo una directory a livello singolo.

Si potrebbe provare la seguente (da plugin docs):

<r:img uri="images/logo.png" width="100" height="50"/>