如何调用客户端库的特定js文件?

时间:2016-08-30 17:39:29

标签: javascript cq5 aem client-library

我已将所有js文件组织到一个公共clientlib类别中。例如

 ->etc
   ->designs
    ->myapp
     -> clientlibs
      -> base
        -> js
          -> app1.js
          -> app2.js
          -> app3.js

因此,当我访问/etc/designs/myapp/clientlibs/base.js时,它会返回一个包含所有包含j的内容的大合并js。有没有办法从这个base.js访问特定的js(比如app2.js)。我们可以使用像/etc/designs/myapp/clientlibs/base/js/app2.js这样的相对路径,它可以工作。

但是有更好的方法(可能使用像/clientlibs/base.app2.js这样的选择器)来返回这个js吗? 或者这是否只能访问特定的js?

1 个答案:

答案 0 :(得分:2)

使用相对路径是访问特定.js文件的方法。客户端库不能通过选择器访问。理想情况下,您希望始终通过客户端lib加载JavaScript,因为它可以提高将脚本组合到单个HTTP请求中的性能(更多HTTP请求加载的时间比仅加载1个更长)。它还压缩脚本以使它们更小。因此,您可以在app1.js等文件中使用完整的空格和注释以及格式设置源脚本,然后通过基本客户端lib加载它们,从而删除脚本最终用户下载时不需要的空格和注释

如果只想要客户端lib的部分,则可以定义仅包含所需部分的第二个客户端库。您可以在多个不同的客户端库中包含相同的源文件(例如app1.js)。对于您的用例,这听起来像是最好的方法。

对于调试,您始终可以添加?debugClientLibs=true查询字符串,以便在浏览器中再次查看单个文件。