我刚开始使用mvc4并且在 _layout 上看到了2个新元素
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
正如我读过这些捆绑包用来加载所有内容因此节省时间,我使用jquery很多,所以我修改了我的 _layout ,以便标题现在看起来像这样
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
<script src="@Url.Content("~/Scripts/jquery-1.8.2.min.js")" type="text/javascript">
允许Jquery,这会破坏bundle的目的所以我的问题是如何在JS包中包含最终的jquery文件?我似乎无法找到这些捆绑包的位置,我查看了Global.asax并且不在那里。
答案 0 :(得分:4)
在ASP.NET MVC4中,如果您在默认项目模板中关注,则有两个与捆绑设施有关的地方:
在Global.asax.cs中,您在Application_Start方法中注册了包:
protected void Application_Start()
{
......
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
现在在App_Start文件夹中有BundleConfig.cs文件。在此文件中,有一些默认的css和js包由模板创建。 在RegisterBundles(BundleCollection捆绑包)方法中,您可以在现有捆绑包中添加文件,或者根据需要创建自己的捆绑包:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/yourNewBundleName").Include(
"~/Scripts/yourFile1",
"~/Scripts/ yourFile2"));
}
在这里,您可以轻松地根据“〜/ bundles / yourNewBundleName”给出包的名称,并包含所需的所有文件,并在_Layout.cshtml或任何其他视图中引用它。通过引用它,您所包含的所有文件都将在那里提供。