0

在我的 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"/>

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

4

1 回答 1

1

在 as 中添加以下条目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 中测试。
  • 每次清理并编译项目以复制问题,以防浏览器从缓存中提供。
于 2013-07-10T21:17:23.447 回答