【问题标题】:Generate URL of resources that are handled by Grails AssetPipeline生成由 Grails AssetPipeline 处理的资源的 URL
【发布时间】:2016-04-12 10:45:20
【问题描述】:

我需要访问本地的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 根目录下,而不是将其放在子目录下以获得更简单的解决方案。出于组织目的,我不想这样做。

【问题讨论】:

    标签: grails asset-pipeline


    【解决方案1】:

    你试过asset.assetPath(src: "/me/json/local.json")

    资产插件查看assets/ 的所有直系子级。您的 local.json 文件需要放在 /project/assets/foo/ 中,以便您当前的代码能够获取它。

    查看包含示例的相关文档here

    资产文件夹深处的第一层仅用于组织目的,可以包含您希望的任何名称的文件夹。文件类型也不需要位于任何特定文件夹中。 URL 映射和相对路径计算中省略了这些文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      • 2015-08-17
      • 2016-03-22
      • 2020-08-29
      • 1970-01-01
      • 2016-08-30
      相关资源
      最近更新 更多