2012-09-09 107 views
4

我正在使用Grails 2.0.4並希望爲某些靜態資源(如圖像或視頻)提供服務。Grails 2沒有提供靜態資源

我在圖片/ grails_logo.png(像往常一樣)中擁有grails徽標的png版本。如果我輸入URL'http:// localhost:8080/TmmWeb/static/images/grails_logo.png',它會顯示我這個標誌。

但是如果我在'http:// localhost:8080/TmmWeb/static/images/grails_logo.jpg'(也有一個jpeg版本的舊徽標存在)中,應用程序會顯示一個404報告,請求的資源()不可用。「

如果我創建了一個子目錄'videos',並且將特殊模式的配置行更改爲grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*','/videos/*'],那麼URL'http:// localhost:8080/TmmWeb/static/images/grails_logo.png'也會失敗與該投訴。

如果我設置adhoc模式設置爲空,grails.resources.adhoc.patterns = []然後像'http:// localhost:8080/TmmWeb/videos/grails_logo.png'的網址工作並提供內容。

那麼,爲什麼只使用adhoc過濾器,只能從圖像目錄提供.png文件,而不能從視頻目錄提供,並且無法提供.jpg文件?

由於這些網址失敗,因此在使用這些網址時,將圖片或視頻嵌入到網頁中也會失敗。

我還應該注意到,我最終希望能夠訪問整個視頻目錄,而不必將每個視頻輸入到資源聲明中。

+0

我有同樣的問題,但與Grails 2.1.1。 –

+0

我創建了另一個目錄來放置一些靜態文件,但我總是得到錯誤404. –

+0

我不知道爲什麼我的代碼現在工作,也許這是一個錯字錯誤。 –

回答

1

答案在這裏變得相當複雜。新的1.2版本的資源插件在其用戶指南中包含完整的說明。

簡而言之,ad-hoc過濾器允許的項目將接收到/ static URI webspace下對應項目的重定向響應。

即使未在ad-hoc模式過濾器中列出,web/app基目錄下的任何文件都將在/ static URI webspace下的相應位置提供。

此行爲對於1.1.x和1.2版本的資源插件將爲真。它與正在使用的Grails版本無關。