链接到包含文件名空间的图像

时间:2013-07-10 18:43:37

标签: grails grails-plugin

在我的Grails应用程序中,我有各种图像:

/web-app/images/competition/foo bar.png
/web-app/images/competition/foo bar2.png
/web-app/images/competition/foo bar3.png

要显示的图像的名称存储在传递给GSP的模型中。我正在尝试使用资源插件提供的<r:img>标记创建指向此链接。到目前为止,我已经尝试过:

<r:img file="competition/${imageName}.png"/>
<r:img file="competition/${imageName.encodeAsHTML()}.png"/>
<r:img file="competition/${imageName.encodeAsURL()}.png"/>

但这些似乎都不起作用。我意识到重命名文件会让我的生活变得更简单,但遗憾的是这是不可能的。

1 个答案:

答案 0 :(得分:1)

ApplicationResources.groovy中添加以下条目为。

modules = {
    images {
        resource url:'images/competition/foo%20bar.png'
    }
}

并在视图中以

的形式访问它

<r:img uri="/images/competition/foo bar.png"/>

<r:img file="competition/foo bar.png"/>

您应该能够访问该资源。

注意: -
访问资源为
<r:img file="competition/foo%20bar.png"/>

对我不起作用。显然,我确定我没有从浏览器缓存中读取数据,所以我按照以下步骤操作:

  • 以Chrome隐身模式进行测试。
  • 每次都清除浏览器缓存。
  • 在Firefox和IE中测试。
  • 每次都清理并编译项目以复制问题,以防从缓存中提供浏览器。