在MVC4.0中绑定javascript文件

在MVC4.0中绑定javascript文件,javascript,c#,jquery,asp.net-mvc,asp.net-mvc-4,Javascript,C#,Jquery,Asp.net Mvc,Asp.net Mvc 4,我正试图在我的web应用程序中捆绑javascript文件以提高性能。我试图加载jQuery的简化版本作为示例,但是当我运行web应用程序时,jQuery没有加载 捆绑包配置: public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bund

我正试图在我的web应用程序中捆绑javascript文件以提高性能。我试图加载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>
母版页:

  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>
@使用System.Configuration
@视图包。标题
@style.Render(“~/Content/css”)
var screenRefreshTime='@ConfigurationManager.AppSettings[“screenRefreshTime”].ToString();
screenRefreshTime=parseInt(screenRefreshTime);
@RenderBody()
@Scripts.Render(“~/bundles/jquery”)
@RenderSection(“脚本”,必需:false)

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")

您正在母版页正文中加载脚本。您正在尝试在加载脚本之前访问脚本。请将脚本加载放在head部分,看看它是否改变了任何东西……您在浏览器中遇到了什么错误?404?您是否尝试过在renderbody()之前调用@Scripts.Render(“~/bundles/jquery”)我尝试了这两种方法,但仍然不起作用。在Chrome的开发者模式下获取此错误-未捕获引用错误:$未定义如果您检查html,是否有任何jquery输出到正文的按钮上?底部有脚本标记引用所有内容。*js files尝试放置@Scripts.Render(“~/bundles/jquery”)在顶部。可能是你的渲染体有jquery代码