无论如何,MVC.Net Cdn都会调用fallback

时间:2014-12-16 15:51:41

标签: javascript asp.net-mvc-4 bundling-and-minification

我现在使用MVC.Net捆绑和缩小。当我加载我的页面呈现一个包(对于我的例子我使用的是JQuery的一个),浏览器请求CDN和后备,这向我的Web服务器发出2个请求。预计服务器每分钟可以获得约2000次点击,因此如果我能将脚本请求减少一半,那将非常棒。所以我的问题是:为什么浏览器会请求回退,我该如何阻止呢?

这是我的BundleConfig

     BundleTable.EnableOptimizations = true;
     bundles.UseCdn = true;
     var bundle = new ScriptBundle("~/bundles/JQueryCore", "//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js")
     {
        CdnFallbackExpression = "window.jquery"
     };

     bundle.Include("~/Scripts/JQuery/jquery-2.1.1.js");
     bundles.Add(bundle);

在我的.cshtml我调用我的脚本@Scripts.Render("~/bundles/JQueryCore")

生成的html如下所示:

<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.1.min.js"></script>
<script>(window.jquery)||document.write('<script src="/bundles/JQueryCore"><\/script>');</script>

1 个答案:

答案 0 :(得分:3)

CdnFallbackExpression需要匹配您正在测试的库; window.jquery不在我的信件中。试一试:

jqueryBundle.CdnFallbackExpression = "window.jQuery"; // note 'Q'.

这将修复内联测试(因此阻止调用本地脚本)。