在我的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"/>
但这些似乎都不起作用。我意识到重命名文件会让我的生活变得更简单,但遗憾的是这是不可能的。
答案 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"/>
对我不起作用。显然,我确定我没有从浏览器缓存中读取数据,所以我按照以下步骤操作: