【发布时间】:2011-11-02 17:33:39
【问题描述】:
我是 grails (1.3.7) 的新手,在显示文件系统中的图像时遇到了奇怪的情况。 one.png 图片被放入 web-app/images/fotos 目录。 zz.gsp:
<img src="${resource(dir:'images/fotos', file:'one.png')}" alt="Nothing" />
与 void 动作相关 def zz = {} 工作正常。但是如果我打算在 rawRenderImage.gsp 中显示同一张图片:
<body>
<p>
${fdir} <br/> ${fname} <!-- OK -->
</p>
<g:if test="${fname}">
<img src="${resource(dir:'fdir',file: 'fname')}" alt ="Nothing"/>
</g:if>
</body>
尽管参数 fdir 和 fname 传递给页面,但图片不会出现。控制器中的动作是:
def rawRenderImage = {
// def basePath = servletContext.getRealPath("/")
// def basePath = grailsAttributes.getApplicationContext().getResource("/").getFile().toString() + "/images/fotos/"
// def basePath = grailsAttributes.getApplicationContext().getResource("/").getFile().toString()
// def fname = params.photoId + ".png"
// def fname = "/images/fotos/" + params.photoId + ".png"
basePath = "images/fotos" // or basePath=”images” for /images/one.png
fname=”one.png”
[fdir:basePath, fname:fname]
}
即使直接分配 basePath=”images/fotos” 和 fname=”one.png” 也不起作用,以及与 basePath 的任何组合 获取绝对路径。即使我将图片放在 images 目录中的情况也不起作用。我使用 netbeans,但它在控制台模式下也不起作用。
请帮忙。
【问题讨论】: