2012-07-31 25 views
5

我有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.pnghttp://admin.mydomain.com/static/images/avatar.png,都返回404。但是,我可以通過這種方式訪問​​其他圖像。

編輯2:這不限於單個圖像。它影響插件中大約一半的圖像。

+0

您是否將plugin ='projectRoot'傳遞給您的標記? – 2012-07-31 16:47:28

+0

@tomas不,我不是。我假設你的意思是g:資源標籤?另外,我上面做了一個關於直接訪問文件的修改。 – aasukisuki 2012-07-31 16:53:37

回答

4

升級資源插件爲我解決了這個問題。我更新了BuildConfig.groovyruntime ":resources:1.2.RC2"

0

沒有看到代碼就不可能說真的。

1)你可能必須通過plugin =插件中的資源 2)你有沒有試過r:resource?

如果你可以隔離這一個簡單的插件和應用程序,創建一個JIRA

1

嘗試將資源插件升級到1.2-RC1。

我有一個非常類似的問題,我的png中的3個會在/ images和/ static/images下直接訪問時返回404錯誤。圖像被命名爲dot.png,calendar.png和dotted_vertical.png。如果我重命名了它們(例如dotted_vertica.png或dotted_vertical1.png),但我找不到任何其他相似點或模式。確實很奇怪。

0

我遇到了同樣的問題。

我解決了它在Bu​​ildConfig.groovy中將資源插件(runtime「:resources:1.1.6」)更改爲webxml插件(compile:「webxml:1.4.1」),現在它正在工作。

我希望它也適合你。

相關問題