我有一些库(如语义ui,jquery ……),我通常在我的< HEAD>中单独加载。直接从CDN标记,每个库都有自己的< SCRIPT>标签。
然后我尝试打开……
从这个问题,和你的 其他问题 ,我认为你可能会误解CDN的目的。
在这个问题中,您说您要复制CDN上托管的代码,将其统一到一个资源中,并托管该代码 的 你自己 强> 。那不是问题。但是,这样做的方法不是使用CDN托管文件,而是使用实际的库源并通过webpack,browserify或汇总等捆绑器构建自己的bundle。
这些捆绑包会在构建时将您遇到的问题考虑在内。静态资源可以相对正确生成,也可以内联添加到捆绑包中。
此外,在您的一条评论中,您说:
下载单个文件比下载10个人快 10个不同库的JS文件。对于浏览器的每个库 发起请求,域名解析等。加入JS文件 使其加载速度更快,而PageSpeed Insights也能为您提供更多 导入较少的JS文件时得分更高
如果您必须实际下载资源,则确实如此。正如我在你提到的另一个问题上所提到的,CDN的目的是尝试制作它,这样你每次访问不同的网站时都不必下载图书馆的副本。相反,如果两者都有 的 网站A. 强> 和 的 站点B. 强> 使用 的 somelib@2.0.0 强> ,并通过脚本加载资源 src : <script src="http://some.cdn.com/somelib@2.0.0"></script> ,无论您首先访问哪个网站都会让您的用户加载脚本,每当您的用户访问第二个网站时,浏览器都会说:“我已经缓存了该资源,我只会使用它”。
src
<script src="http://some.cdn.com/somelib@2.0.0"></script>
这为您的用户节省了网络调用,这意味着没有请求开销,只有浏览器意识到它已经拥有资源所需的开销。