在MVC4.0中绑定javascript文件
我正试图在我的web应用程序中捆绑javascript文件以提高性能。我试图加载jQuery的简化版本作为示例,但是当我运行web应用程序时,jQuery没有加载 捆绑包配置:在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
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代码