5

使用 Grails 2.0.4。在构建电子邮件时,我使用了很多带有绝对路径的图像。每一个都会导致烦人的日志条目。有简单的解决方法吗?它们确实存在,只是资源插件似乎不喜欢绝对路径。这也发生在 localhost / dev 环境之外。

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

4 回答 4

4

与我一起为 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'
}
于 2014-05-07T00:56:59.367 回答
0

我知道这是一个老问题,但它似乎仍然是 Grails 2.3.x 的问题。resource关闭上方有评论ResourceTagLib说:

@todo 这目前不适用于 absolute="true" 调用,它应该只是通过这些

为了删除日志中的警告,我覆盖了resource闭包,更改了这一点:

...
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}"
}
...
于 2014-02-16T11:35:01.857 回答
0

仅当您在使用参数时尝试使用子目录时才会发生这种情况dir。您需要指定一个uri. 我假设它dir只能是一个单级目录。

您可以尝试以下方法(来自插件文档):

<r:img uri="images/logo.png" width="100" height="50"/>
于 2016-05-17T19:02:04.183 回答
-1

你正在使用'grails-resources'插件。它也有标签“资源”。尝试使用直接 G-tag:

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

或使用资源插件中的 R-tag(推荐):

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

在此处获取更多信息

于 2012-07-16T07:03:41.427 回答