Подтвердить что ты не робот

Использование CDN в пакете MVC script. Что мне не хватает?

Я пытаюсь использовать CDN для загрузки jquery. Я прочитал эту статью, и это похоже на то, что это должно быть очень просто.

Мой пакет script определяется следующим образом.

bundles.UseCdn = true;
bundles.Add(new ScriptBundle("~/bundles/jquery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js").Include(
                        "~/Scripts/jquery-{version}.js"));

Я включаю его на странице следующим образом:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    @RenderBody()

    @Scripts.Render("~/bundles/jquery")
    @RenderSection("scripts", required: false)
</body>
</html>

Но когда я смотрю на firebug, кажется, что jquery загружается из localhost. firebug inspection

Я пробовал как с версией realease, так и с отладчиком /. Что мне не хватает? Я думаю, это должно быть довольно просто. Спасибо.

4b9b3361

Ответ 1

Запустите приложение в режиме debug="false" или используйте BundleTable.EnableOptimizations = true;

Ответ 2

На самом деле вы можете написать @RaviGadag его метод короче при использовании последней версии ASP.NET MVC. Таким образом, вам не нужно писать резервную копию в макете:

public static void RegisterBundles(BundleCollection bundles)
{

  bundles.UseCdn = true;

  var jqueryCdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.1.3.min.js";
  var jqueryBundle = new ScriptBundle("~/bundles/jquery", jqueryCdnPath).Include("~/Scripts/jquery-{version}.min.js");
  jqueryBundle.CdnFallbackExpression = "window.jQuery";
  bundles.Add(jqueryBundle);

  // ...

  BundleTable.EnableOptimizations = true;
}

доступные версии jquery в сети доставки контента (CDN): http://www.asp.net/ajax/cdn#jQuery_Releases_on_the_CDN_0

Ответ 3

убедитесь, что вы не находитесь в режиме отладки.

  bundles.Add(new ScriptBundle("~/bundles/jquery", "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js")

set BundleTable.EnableOptimizations = true;//если вы хотите использовать режим отладки

jQuery будет запрашиваться с CDN в режиме деблокирования, а отладочная версия jQuery будет выбрана локально в режиме отладки. когда используя CDN, вы должны иметь резервный механизм в случае, если CDN запрос не работает.

если запрос CDN не работает, вы можете предоставить обратный вызов

<script type="text/javascript">
            if (typeof jQuery == 'undefined') {
                var e = document.createElement('script');
                e.src = '@Url.Content("~/Scripts/jquery-1.7.1.js")';
                e.type = 'text/javascript';
                document.getElementsByTagName("head")[0].appendChild(e);

            }
        </script>