我正在尝试使用 Grails 2.0.3 中文档不足的 grailsLinkGenerator 类在我的 bootsrap 文件中创建指向图像资源的链接
我已经成功注入(inject)服务使用
...
LinkGenerator grailsLinkGenerator
...
但是下面代码生成的url不正确
grailsLinkGenerator.resource(dir:'images', file:'1.jpg')
没有错误,生成的路径看起来几乎是正确的,除了它在 url 中缺少“static”。我用错了吗?有没有其他方法可以在 Bootstrap 中访问静态资源?
最佳答案
查看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
即可创建正确的 url。
关于grails - 使用 grailsLinkGenerator 在 bootstrap.groovy 中生成图像链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246222/