如何将BundleConfig.cs添加到我的项目中?

时间:2014-02-10 02:44:20

标签: asp.net-mvc asp.net-mvc-4 visual-studio-2013

我有一个ASP.Net MVC项目,我想实现捆绑,但我在互联网上找到的所有内容都指示我在BundleConfig.cs中打开App_Start - 但是这个文件在我的身上不存在项目。该文件夹中只有三个文件:FilterConfigRouteConfigWebApiConfig

创建解决方案时未生成Bundle配置(IIRC在开始时它是一个空白的ASP.NET MVC项目)。

看起来这应该很容易做到,但我简直无法弄明白。

P.S。只是为那些不仔细阅读的人澄清,这是针对从头开始创建的MVC4 / .Net 4.5应用程序。解决方案标在下面。

2 个答案:

答案 0 :(得分:162)

BundleConfig只不过是捆绑配置移动到单独的文件。它曾经是应用启动代码的一部分(过滤器,捆绑包,过去在一个类中配置的路由)

要添加此文件,首先需要将Microsoft.AspNet.Web.Optimization nuget包添加到您的Web项目中:

Install-Package Microsoft.AspNet.Web.Optimization

然后在App_Start文件夹下创建一个名为BundleConfig.cs的新cs文件。以下是我的内容(ASP.NET MVC 5,但它应该适用于MVC 4):

using System.Web;
using System.Web.Optimization;

namespace CodeRepository.Web
{
    public class BundleConfig
    {
        // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862
        public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js"));

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

            // Use the development version of Modernizr to develop with and learn from. Then, when you're
            // ready for production, use the build tool at http://modernizr.com to pick only the tests you need.
            bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                        "~/Scripts/modernizr-*"));

            bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
                      "~/Scripts/bootstrap.js",
                      "~/Scripts/respond.js"));

            bundles.Add(new StyleBundle("~/Content/css").Include(
                      "~/Content/bootstrap.css",
                      "~/Content/site.css"));
        }
    }
}

然后修改您的Global.asax并在RegisterBundles()中添加对Application_Start()的调用:

using System.Web.Optimization;

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

一个密切相关的问题:How to add reference to System.Web.Optimization for MVC-3-converted-to-4 app

答案 1 :(得分:1)

如果您使用的是“MVC 5”,则可能看不到该文件,您应该按照以下步骤操作:http://www.techjunkieblog.com/2015/05/aspnet-mvc-empty-project-adding.html

如果您正在使用“ASP.NET 5”,它已停止使用“捆绑和缩小”,而是由gulp,bower和npm取代。更多信息,请参阅https://jeffreyfritz.com/2015/05/where-did-my-asp-net-bundles-go-in-asp-net-5/