0

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

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

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

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

4

1 回答 1

2

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

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

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

于 2016-08-30T18:36:39.910 回答