45

jqueryの読み込みにCDNを使用しようとしています。私はこの記事を読みましたが、これは非常に簡単なはずです。

私のスクリプトバンドルは次のように定義されています。

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からロードされているようです。 ファイアバグ検査

realeaseビルドとdebugビルドの両方を試しました。私は何が欠けていますか?これは非常に簡単なはずだと思います。ありがとう。

4

3 に答える 3

45

アプリケーションをdebug="false"モードで実行するか、BundleTable.EnableOptimizations = true;

于 2013-03-14T05:45:02.887 に答える
16

実際、ASP.NET MVCの最新バージョンを使用する場合は、@RaviGadagのメソッドを短く書くことができます。このようにして、レイアウトにフォールバックを自分で記述する必要はありません。

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;
}

コンテンツ配信ネットワーク(CDN)で利用可能なjqueryバージョン: http ://www.asp.net/ajax/cdn#jQuery_Releases_on_the_CDN_0

于 2015-05-13T09:32:54.993 に答える
9

デバッグモードになっていないことを確認してください。

  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> 
于 2013-03-14T05:00:18.153 に答える