2016-04-12 19 views
1

我需要訪問本地JSON文件。由於Grails的2.4默認情況下,實現了AssetPipeline插件,我在救我的本地JSON文件:生成由Grails AssetPipeline處理的資源的URL

/grails-app/assets/javascript/vendor/me/json/local.json 

現在我需要的是生成一個URL來此JSON文件,用作我的JavaScript的$.getJSON()函數參數。我已經嘗試使用:

var URL.local = ""${ raw(asset.assetPath(src: "local.json")) }"; 

,但它產生的無效鏈接:

console.log(URL.local); 
// prints  /project/assets/local.json 
// instead of /project/assets/vendor/me/json/local.json 

我也遇到了同樣的場景與由AssetPipeline1.9.9 —處理,都應該可以動態地插入圖像在頁面上。我怎樣才能生成指向這個資源的URL?我知道,我總是可以爲URL提供一個靜態字符串,但似乎會有更合適的解決方案。

編輯

有人問我,如果我可以在assets/javascript根目錄下直接將本地JSON文件,而不是將其子目錄下的一個更簡單的解決方案。爲了組織的目的,我不願意。

回答

0

你試過asset.assetPath(src: "/me/json/local.json")

資產插件看起來所有的assets/眼前的孩子。您的local.json文件需要放在/project/assets/foo/中,以便當前的代碼將其提取出來。

查看包含示例的相關文檔here

資產文件夾內的第一層僅用於組織目的,可以包含任何您想要的名稱的文件夾。文件類型也不需要在任何特定的文件夾中。這些文件夾從URL映射和相對路徑計算中省略。