【问题标题】:How to bundle the JS loaded by script manager from CDN in Asp.Net如何在 Asp.Net 中捆绑脚本管理器从 CDN 加载的 JS
【发布时间】:2018-08-31 14:18:35
【问题描述】:
我在 asp.net 中有一个应用程序,我正在母版页中使用脚本管理器。我想从 CDN 加载与脚本管理器相关的所有脚本,因此我在脚本管理器中放置了 EnableCDN="true"。
<asp:ScriptManager runat="server" EnableCdn="true" />
我注意到所有脚本都是单独加载的,这增加了 http 请求,我想将它们全部捆绑到 1 个脚本中。
有没有人实现了将从 CDN 加载的脚本捆绑到 1 个 js 文件中,而不是在 asp.net(不是 MVC)中分开?
下面是单独加载的所有 js 的快照
【问题讨论】:
标签:
javascript
asp.net
scriptmanager
asp.net-bundling
【解决方案1】:
ScriptBundle 中只允许包含应用程序相对 URL (~/url),仅在顶级捆绑包级别支持在捆绑包中使用 CDN。
您可以在自己构建后将整个捆绑包上传到 CDN,然后我们就像 https://ajax.aspnetcdn.com/ajax/4.6/1/MsAjaxJs.js 一样。
bundles.Add(new ScriptBundle("~/bundles/MsAjaxJs", "https://ajax.aspnetcdn.com/ajax/4.6/1/MsAjaxJs.js").Include(
"~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxApplicationServices.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxTimer.js",
"~/Scripts/WebForms/MsAjax/MicrosoftAjaxWebForms.js"));
此外,当在web.config 文件中将编译设置为false 时,将启用优化