【发布时间】:2023-04-11 11:44:01
【问题描述】:
我在 MVC 应用程序中使用脚本包从 CDN 加载脚本,使用以下代码:
bundles.Add(new ScriptBundle("~/bundles/jqueryValidate", "//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js").Include("~/Scripts/jquery.validate.min.js"));
如果 CDN 失败,它应该从本地存储库(从项目内部)加载脚本。
我已添加:
bundles.UseCdn = true;
和
BundleTable.EnableOptimizations = true;
确保首先加载 CDN。
当我从我的网络(公共网络)尝试时,它工作得很好:脚本从 CDN 加载,没有任何问题。
如果我从客户的网络(公司网络)尝试,CDN 会被阻止并且不会加载替换脚本。我不明白为什么我设置的故障转移机制不起作用。
你知道为什么会这样吗?
【问题讨论】:
-
当页面未加载时,您是否查看了它尝试加载的路径的源代码,并查看您是否可以直接浏览该路径?
-
是的,来源是 CDN 路径。我将该源直接放在浏览器中,脚本没有加载。我收到一条错误消息:net:: ERR_CONNECTION_CLOSED。在这种情况下,故障转移机制不应该启用自身并从本地项目加载脚本吗?
-
您使用什么代码进行故障转移检查?你读过asp.net/mvc/overview/performance/bundling-and-minification
-
这段代码应该做故障转移:bundles.Add(new ScriptBundle("~/bundles/jqueryValidate", "//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1 /jquery.validate.min.js").Include("~/Scripts/jquery.validate.min.js"));
-
使用
Include对故障转移 AFAIK 一无所知 - 这只是在该捆绑包中包含额外脚本的方法。
标签: jquery asp.net-mvc cdn bundling-and-minification