我有3個Grails 2.x項目。在這個例子中,他們分別是:Grails資源:即使它存在於WAR中,圖像仍然是404
ProjectCore - A Grails plugin containing all reusable code (domains, taglibs, etc)
ProjectWeb - Front facing web application. Uses ProjectCore
ProjectAdmin - Admin appliction. Uses ProjectCore
幾乎所有的圖像,JS,標籤庫,服務等都是ProjectCore,只有特定應用程式控制器/視圖/服務/ JS/CSS中的個別項目。
本地一切運行良好,使用NetBeans作爲我的IDE。我控制了ProjectAdmin項目,並將其部署到運行Tomcat 6的Ubuntu服務器上。除了1個圖像:avatar.png(包含在ProjectCore應用程序中),應用程序中的所有內容都按預期工作。
我使用g:資源標籤來創建所有的圖像鏈接,它們都正確解析/static/images/some_image_name.png網址的正確,除了這一個圖像。我還驗證了圖像存在於戰爭中(位於plugins/ProjectCore /所有其他圖像都在的圖像中)。
對於此特定圖像,如果用戶尚未上傳頭像,我正在使用taglib(AvatarTagLib)創建指向此圖片的鏈接。這個Taglib在ProjectRoot中,但是從其他項目中調用。我相信其他圖像是從特定項目的視圖中調用的,所以這可能是掛機的地方。
最初,當我部署應用程序時,我忘記將war(包含目錄)的所有權更改爲tomcat6:tomcat6,所以我不僅在這個映像上遇到了問題,而且還在處理messages.properties文件SpringSecurityPlugin。我把它全部抹掉,修正了權限,並解決了除此之外的所有問題。
有沒有人遇到過這種行爲,或知道任何其他路徑我可以下來整理出來?
編輯:有一件事我忘了提及。當我嘗試直接訪問圖像時,通過http://admin.mydomain.com/images/avatar.png或http://admin.mydomain.com/static/images/avatar.png,都返回404。但是,我可以通過這種方式訪問其他圖像。
編輯2:這不限於單個圖像。它影響插件中大約一半的圖像。
您是否將plugin ='projectRoot'傳遞給您的標記? – 2012-07-31 16:47:28
@tomas不,我不是。我假設你的意思是g:資源標籤?另外,我上面做了一個關於直接訪問文件的修改。 – aasukisuki 2012-07-31 16:53:37