簡體   English   中英

在MVC 4.0中捆綁JavaScript文件

[英]Bundling javascript files in MVC 4.0

我試圖將javascript文件捆綁在我的Web應用程序中以提高性能。 我正在嘗試加載jQuery的縮小版本作為示例,但是當我運行Web應用程序時,未加載jQuery。

捆綁配置:

  public class BundleConfig
    {
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").IncludeDirectory("~/Scripts/","jquery-1.8.2.min.js"));
//Also tried this:
//bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-1.8.2.min.js"));
            bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
        }
    }

母版頁:

@using System.Configuration
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <meta name="apple-mobile-web-app-capable" content="yes">
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content/css")   
    <script type="text/javascript">
        var screenRefreshTime = '@ConfigurationManager.AppSettings["ScreenRefreshTime"].ToString()';
        screenRefreshTime = parseInt(screenRefreshTime);
    </script>
</head>
<body>
    @RenderBody()
    @Scripts.Render("~/bundles/jquery")
    @RenderSection("scripts", required: false)
</body>
</html>

IncludeDirectory的第二個參數是搜索模式,因此請嘗試* .js

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").IncludeDirectory("~/Scripts/", "*.js"));
        bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
    }
}

或者使用Include而不是IncludeDirectory:

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-1.8.2.min.js"));
        bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
    }
}

創建它的包時,無需包含min。我假設您在同一文件夾中擁有jquery.1.8.2.js和jquery.1.8.2.min.js,文件名相同,除了“ min”一詞:jquery.1.8.2.js,jquery.1.8.2.min.js。 您可以嘗試直接包含工作,而不是包含目錄。 像這樣的代碼

  public class BundleConfig
  {
    public static void RegisterBundles(BundleCollection bundles)
    {

        bundles.Add(new ScriptBundle("~/bundles/jquery").Include("jquery-1.8.2.js"));

    }
}

還需要提及的是,捆綁僅在發布模式下有效,如果您需要在調試模式下進行檢查,則需要啟用優化。

BundleTable.EnableOptimizations = true;

稱呼它

 @Scripts.Render("~/bundles/jquery")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM