c# – 从多个CDN位置创建脚本包

假设我们的应用程序处于离线状态,即我们无法使用第三方CDN,因此我们正在创建自己的CDN.
我想在单独的(Parent)Web应用程序中托管所有供应商脚本,然后将它们包含在其他几个MVC应用程序的捆绑包中.

例如

> http://localhost/parentWeb/Scripts/jquery.js
> http://localhost/parentWeb/Scripts/jquery-ui.js
> http://localhost/parentWeb/Scripts/globalize.js

我想包括在ASP.NET MVC App网站,位于:http:// localhost / parentWeb / childWeb

就是这样做:

bundles.UseCdn = true;
bundles.Add(
    new ScriptBundle(
        "~/bundles/VendorScripts","http://localhost/parentWeb/Scripts/jquery.js","http://localhost/parentWeb/Scripts/jquery-ui.js","http://localhost/parentWeb/Scripts/globalize.js"));

…当然当然不可能.有没有很好的解决方法?

解决方法

您不能捆绑外部资源.如果你想到这一点,那么这是有道理的.这将需要捆绑器实际下载资源并将其保存到文件系统,然后才能使用它,当然如果外部资源无法达到,则会以某种方式异步执行.而且,在每个页面加载时都必须这样做,因为它不能先检索lastmod(因此知道它是否真的需要重新分组).

如果您使用CDN资源,则捆绑程序仅将该URL直接打印到该页面;它没有做任何修改.即使这样,它只允许您创建一个仅一个URL的“捆绑”,因为1)捆绑多个CDN资源是没有意义的,因为这将破坏CDN的目的,2)该捆绑仅存在于此如果CDN资源不可用,则提供后备.否则,您只需将其硬编码到页面,而不用担心设置一个捆绑包,那么您也将被送达.

相关文章

文章浏览阅读6.2k次,点赞2次,收藏3次。C#数学运算表达式解...
文章浏览阅读5.2k次,点赞6次,收藏7次。程序要做到用户配置...
文章浏览阅读9k次。错误信息检测到 ContextSwitchDeadlock M...
文章浏览阅读2w次,点赞10次,收藏9次。我发生错误时的环境:...
文章浏览阅读9.8k次。C# 二进制字节流查找函数IndexOf ...
文章浏览阅读2.5w次,点赞3次,收藏9次。c#DataGridView数据...