我刚刚启动 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 的目的,所以我的问题是如何将最终的 jquery 文件包含在 JS bundle 中?我似乎找不到这些 bundle 在哪里,我查看了 Global.asax 内部,但不在那里。
最佳答案
在 ASP.NET MVC4 中,如果您遵循默认项目模板,则有两个位置与 bundle 功能有关:
在 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 或任何其他 View 中引用它。通过引用它,您所包含的所有文件都将在那里可用。
关于jquery - 刚开始 mvc 4 我可以在哪里调整包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19988070/