【发布时间】:2018-08-31 18:25:13
【问题描述】:
我有一些库(如语义 ui、jquery...),我通常直接从 CDN 将它们分别加载到我的 <HEAD> 标签中,每个库都有自己的 <SCRIPT> 标签。
然后我尝试打开每个 JS 文件的内容,复制每个文件并将每个内容附加到本地单个空白 JS 文件中。然后我在我的项目中导入了这个文件。好的,它工作正常,控制台上没有错误。但是有些东西不起作用。
检查 Chrome Dev Tools 的 NETWORK 选项卡,我发现这些库还尝试动态下载许多 css/图像文件。浏览器会尝试从我的本地域而不是 CDN 下载这些资源 - 当然。所以我也必须将所有这些文件移动到我的本地服务器。
但我的问题是:无论如何我可以使用类似于BASE 标记的东西,但可以使用脚本吗?
例如,我的single.js 会是这样的:
base_download = 'cdnjs.cloudflare.com';
//HERE COMES THE CONTENT OF JQUERY LIBRARY
//...
base_download = 'cdn.jsdelivr.com';
//HERE COMES THE CONTENT OF SEMANTIC UI LIBRARY
//...
base_download = 'cdnjs.cloudflare.com';
//HERE COMES THE CONTENT OF THE ANIMATE JS LIBRARY
//...
这样浏览器就可以正确地知道每个js代码请求的内容去哪里下载了。
如果我不清楚,我说对不起,我在这里澄清你需要的任何东西!
【问题讨论】:
-
您认为加入这些文件会带来什么好处?我认为您可能正在尝试克服 CDN 实际上没有的问题。这些脚本是独立的并且每个都是单独的查询,这是一件好的事情。这对 您的 服务器来说不是问题,但对于 CDN 服务器来说是个问题,因为它正在为这些资源提供服务。
-
@zero298 下载单个文件比为 10 个不同的库下载 10 个单独的 JS 文件要快得多。对于每个库,浏览器必须发起请求、域解析等。加入 JS 文件可以使其加载速度更快,并且 PageSpeed Insights 在导入更少的 JS 文件时会为您提供更好的分数。
-
@Rohit Sharma 您所说的与我的问题无关!我想将所有文件合并在一起。
标签: javascript import cdn head