我需要访问本地JSON
文件。由于Grails 2.4默认实现了AssetPipeline插件,因此我将本地JSON
文件保存在:
/grails-app/assets/javascript/vendor/me/json/local.json
现在我需要的是生成这个JSON
文件的URL,以用作我的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提供静态字符串,但似乎会有更合适的解决方案。
我被问到是否可以直接在JSON
根目录下移动本地assets/javascript
文件,而不是将其放在子目录下以获得更简单的解决方案。出于组织目的,我不愿意这样做。
答案 0 :(得分:0)
您是否尝试过asset.assetPath(src: "/me/json/local.json")
资产插件会查找assets/
的所有直接子项。您的local.json文件需要放在/project/assets/foo/
中,以便当前代码将其提取。
查看包含示例的相关文档here。
assets文件夹中的第一个级别仅用于组织目的,可以包含任何名称的文件夹。文件类型也不需要位于任何特定文件夹中。 URL映射和相对路径计算中省略了这些文件夹。