2012-07-16 11 views
5

Grails 2.0.4'ü kullanma. E-posta oluşturmada, mutlak yollarla çok fazla resim kullanıyorum. Her biri rahatsız edici bir günlük girdisi ile sonuçlanır. kolay bir düzeltme var mı? Varlar, kaynak eklentisi mutlak yolları sevmiyor gibi görünüyor. Bu, localhost/dev ortamı dışında da olur.Görüntüleri mutlak ile kullanırken grails kaynak uyarı günlüğü girişi: true

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

. Herhangi bir çözüm bulabildin mi? – rcgeorge23

+0

Grails JIRA'ya bir sorun gönderdim: http://jira.grails.org/browse/GPRESOURCES-256 – Klemens

+0

Bir çözüm buldum, kendi cevabıma bakın – Peter

cevap

3

Grails 2.1.x ve üstü için (en yeni 2.3.x dahil) birlikte çalışmakta olan çözüm, bu girdileri Config.groovy'deki log4j config bloğunuza eklemektir - başka hiçbir kod değişikliği gerekmez.

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

yılında

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

sonuç uou 'grails-kaynaklar' eklentisi kullanıyor. Ayrıca 'kaynak' etiketli. Doğrudan G-etiketi kullanmayı deneyin:

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

veya kaynak eklentisinden R-etiketi kullanmak (ÖNERİLEN):

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

Bu eski bir soru olduğunu biliyorum fazla bilgiye here

+0

Bunlar hem kaynak eklentisine – Peter

+1

no'lu yetkili temsilci. tanımı tanımlamak için ad alanı kullandım. Kaynak eklentisi yüklüyse 'kaynak' etiketi varsayılan olarak 'r' ad alanı ile ilişkilendirilir. – jenk

0

alın, ama yine de Grails 2.3.x ile ilgili bir sorun gibi görünüyor. diyor ResourceTagLib yılında resource kapatılması yukarıdaki yorum yok: Bu @todo

anda mutlak = "true" çağırmaları için çalışmaz, sadece kaldırmak için bu

Passthrough gerekir buna

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

:

günlüğüne uyarılar Bu bölüme değişiyor, resource kapatılmasını overrode
... 
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

Bu değişikliği nerede yaptığınızı açıklar mısınız? – nuoritoveri

0

Size dir param kullanırken bir alt dizini kullanmaya çalıştığınızda sadece gerçekleşmiş gibi görünür. Bir uri belirtmeniz gerekir. dir'un sadece tek bir dizin olabileceğini varsayalım.

Sen deneyebilirsiniz (plugin docs itibaren) şu: Ben de Grails 2.3.4 ile bu yaşıyorum

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