我正在尝试使用Grails 2.0.3中的underdocumented grailsLinkGenerator类在我的bootsrap文件中创建一个图像资源的链接
我已成功使用
注入服务...
LinkGenerator grailsLinkGenerator
...
但是由以下代码生成的网址不正确
grailsLinkGenerator.resource(dir:'images', file:'1.jpg')
没有错误,并且生成的路径几乎看起来正确,除了它在网址中缺少“静态”。我用错了吗?是否有另一种方法可以在bootstrap中访问静态资源?
答案 0 :(得分: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
中生成链接,该链接将负责显示它们。
在TagLib中,您只需使用g:resource
即可创建正确的网址。