3

我正在尝试使用 Grails 2.0.3 中记录不足的 grailsLinkGenerator 类在我的引导文件中创建指向图像资源的链接

我已经使用成功注入了服务

...
LinkGenerator grailsLinkGenerator 
...

但是下面代码生成的url不正确

grailsLinkGenerator.resource(dir:'images', file:'1.jpg')

没有错误,生成的路径看起来几乎是正确的,除了它在 url 中缺少“静态”。我用错了吗?是否有其他方法可以在引导程序中访问您的静态资源?

4

1 回答 1

1

查看ApplicationTagLib源代码,您可以看到仅在未安装资源插件时g:resource使用。linkGenerator

Closure resource = { attrs ->
    if (!attrs.pluginContextPath && pageScope.pluginContextPath) {
        attrs.pluginContextPath = pageScope.pluginContextPath
    }
    // Use resources plugin if present, but only if file is specified - resources require files
    // But users often need to link to a folder just using dir
    return ((hasResourceProcessor && attrs.file) ? r.resource(attrs) : linkGenerator.resource(attrs))
}

所以这可能是您的链接没有静态路径的原因。

我认为这不是将完整链接存储到数据库中的缩略图的好选择。如果您更改结构中的某些内容,则需要更新所有链接。您可以存储缩略图的名称(或使用约定),并让链接生成在TagLib负责显示它们的 a 中。

在 TagLib 中,您可以使用g:resource它来创建正确的 url。

于 2013-04-02T11:31:55.810 回答