2012-07-16 16 views
5

Używanie Grails 2.0.4. Budując e-maile, używam wielu obrazów z absolutnymi ścieżkami. Każda z nich powoduje irytujący wpis dziennika. Czy jest łatwa naprawa? One istnieją, wydaje się, że wtyczka zasobów nie lubi bezwzględnych ścieżek. Zdarza się to również poza środowiskiem localhost/dev.Pozycja dziennika ostrzeżenia o zasobach Graala przy użyciu obrazów o wartości absolutnej: prawda

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

skutkuje

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

Jestem również przeżywa to z Grails 2.3.4. Czy kiedykolwiek znalazłeś rozwiązanie? – rcgeorge23

+0

Zgłosiłem problem do Grails JIRA: http://jira.grails.org/browse/GPRESOURCES256 – Klemens

+0

Znalazłem rozwiązanie, zobacz moją własną odpowiedź – Peter

Odpowiedz

3

Rozwiązaniem, które współpracowało ze mną dla Grails w wersji 2.1.x i nowszej (włączając w to najnowszą wersję 2.3.x) jest dodanie tych wpisów do twojego bloku konfiguracji log4j w Config.groovy - żadne inne zmiany kodu nie są potrzebne.

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 używasz wtyczki "Grails-resources. Ma także znacznik "zasób". spróbuj użyć bezpośredniego G-tag:

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

lub użyj R-tag z wtyczką zasobów (zalecane):

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

Uzyskaj więcej informacji here

+0

Obaj po prostu przekazują zasoby do wtyczki – Peter

+1

nie. użyłem przestrzeni nazw, by skierować definicję. Jeśli wtyczka zasobu jest zainstalowana, znacznik "zasób" jest domyślnie powiązany z obszarem nazw "r". – jenk

0

wiem, jest to stara sprawa, ale nadal wydaje się problem z Grails 2.3.x. Jest komentarz powyżej zamknięcia resource w ResourceTagLib który mówi:

@todo ten obecnie nie będzie pracować dla absolutnych = „true” inwokacji, należy po prostu PASSTHROUGH te

W celu usunięcia ostrzeżenia w dzienniku, ja overrode zamknięcie resource, zmieniając ten bit:

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

do tego:

... 
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

Czy możesz wyjaśnić, gdzie dokonałeś tej zmiany? – nuoritoveri

0

Wydaje się zdarzyć tylko wtedy, gdy spróbujesz użyć podkatalogu przy użyciu dir param. Musisz określić uri. Zakładam, że dir może być tylko katalogiem jednopoziomowym.

Można wypróbować następujące (od plugin docs):

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