2011-11-02 97 views
0

我是grails(1.3.7)的新手,我一直處於一種奇怪的情況,顯示來自文件系統的圖像。將one.png圖片放入web-app/images/fotos目錄。該zz.gsp無法在grails中顯示來自文件系統的圖像

<img src="${resource(dir:'images/fotos', file:'one.png')}" alt="Nothing" /> 

相關的無效動作高清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> 

圖片不顯示的參數FDIRFNAME通頁面inspite。在控制器中的操作是:

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] 
    } 

即使直接受讓人基本路徑=」圖像/照片」FNAME =」 one.png」不工作,以及與任意組合基本路徑獲得絕對路徑。甚至當我把圖片放在圖片目錄不起作用的情況下。我使用netbeans,但它也不能在控制檯模式下工作。

請幫忙。

回答

2

當在模型中傳入文件名和目錄作爲變量時,請勿在標籤的src屬性中引用它們。然後Groovy評估將評估變量而不是字符串。

<g:if test="${fname}"> 
    <img src="${resource(dir:fdir,file:fname)}" alt ="Something"/> 
</g:if> 
+0

「$ {resource(dir:fdir,file:fname)}」 - 相同的結果...沒有。 – tolymark

+0

這很奇怪。您是否在瀏覽器中查看了生成的HTML,以查看的src'屬性中的URL?另外,你的示例控制器代碼在動作中沒有'basePath'或'fname'前面的'def',雖然註釋掉了。 – schmolly159

+0

你是對的報價,但絕對路徑我有問題。 螢火蟲給出了從服務器到POST rawRenderImage響應: /家庭/ TOLY /的NetBeansProjects /照片/ Web的應用程序
/images/one.png Nothing 並獲得one.png地址是http://本地主機:8080/foto/home/toly/NetBeansProjects/foto/web-app/images/one.png 產生404 Not Found錯誤...但image one.png位於images文件夾內,並顯示相對路徑。 – tolymark

相關問題