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


96

我有一个ASP.Net MVC项目,我想实现捆绑,但一切我可以在互联网上找到指引我开BundleConfig.csApp_Start-但是这个文件不在我的项目存在。我只有三个文件夹中的文件:FilterConfigRouteConfigWebApiConfig

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

看来这确实很容易做到,但我只是无法理解。

PS只是为了向那些不熟悉的人澄清,这是针对从头创建的MVC4 / .Net 4.5应用程序。解决方案在下面标记。


您找不到它,因为它仅包含在ASP.NET 4.5项目模板中。我假设您使用的是ASP.NET的早期版本。
詹森·罗尔


2
@Liam Nope。正如问题中明确指出的那样,这与重新创建而不是从MVC3转换的应用有关。显然,这也是如何添加BundleConfig.cs文件的,而不是如何添加对System.Web.Optimization的引用的(在此问题的场景中这是完全不必要的)。我必须假设您正在尝试对一个完全不同的问题发表评论。
Maverick

@Liam-实际上,我认为您可能对答案感到困惑,其中包括“将Microsoft.AspNet.Web.Optimization nuget程序包添加到您的Web项目中”的步骤,这不是上述问题的解决方案的一部分。解决方案是添加BundleConfig.cs文件。我确实在对答案的评论中说了这一点...但是该评论(以及所有其他有关答案的评论)似乎已经消失了。
Maverick

Answers:


167

BundleConfig无非就是将捆绑软件配置移到了单独的文件中。它曾经是应用程序启动代码的一部分(用于在一类中配置的过滤器,包,路由)

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

Install-Package Microsoft.AspNet.Web.Optimization

然后在App_Start文件夹下创建一个名为的新cs文件BundleConfig.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);
}

一个密切相关的问题:如何为MVC-3-converted-to-4应用程序添加对System.Web.Optimization的引用


2
nuget应该添加一个样板版本。
niico

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.