【问题标题】:How do I add BundleConfig.cs to my project?如何将 BundleConfig.cs 添加到我的项目中?
【发布时间】:2014-03-07 06:10:36
【问题描述】:

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

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

看起来这应该很容易做到,但我就是想不通。

附:只是为了向那些没有仔细阅读的人澄清一下,这是针对从头开始创建的 MVC4/.Net 4.5 应用程序。解决方案如下所示。

【问题讨论】:

  • 你找不到它,因为它只包含在 ASP.NET 4.5 项目模板中。我假设您使用的是早期版本的 ASP.NET。
  • @Liam 不。正如问题中明确所述,这是关于重新创建的应用程序,而不是从 MVC3 转换而来的。它也很明显是关于如何添加 BundleConfig.cs 文件 - 而不是如何添加对 System.Web.Optimization 的引用(在这个问题的场景中完全不需要的东西)。我不得不假设你试图评论一个完全不同的问题。
  • @Liam - 实际上,我知道您可能对答案感到困惑,其中包括“将 Microsoft.AspNet.Web.Optimization nuget 包添加到您的 Web 项目”的步骤,即 不是解决上述问题的一部分。解决方案是添加 BundleConfig.cs 文件。我确实在对答案的评论中说了这一点……但是该评论(以及答案中的所有其他评论)似乎已经消失了。

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


【解决方案1】:

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 并在Application_Start() 中添加对RegisterBundles() 的调用:

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

【讨论】:

  • nuget 应该添加一个样板版本。
【解决方案2】:

如果您使用的是“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/

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2017-03-05
    • 2011-12-07
    • 2023-03-18
    相关资源
    最近更新 更多