【问题标题】:ASP.net Bundle.config VS BundleConfig.csASP.net Bundle.config VS BundleConfig.cs
【发布时间】:2014-01-16 06:58:52
【问题描述】:

我创建了一个新的 ASP.NET 4.5.1 Web 表单项目。

我之前在 MVC 4 中使用过捆绑和缩小。

为什么根目录中有一个 bundle.config 文件 - App_Start 中有一个 BundleConfig.cs 文件 - 两者似乎都列出了要捆绑的文件?

每个是做什么的,为什么他们看起来做同样的事情?

这个问题在这里被问到但没有真正回答(即使它被标记为这样): Bundling resources via bundle.config vs BundleConfig.cs in ASP.NET 4.5 WebForms

【问题讨论】:

  • 在我的 webforms Web 应用程序(不是网站)项目类型中,我使用 作为东西在 BundleConfig.cs 中声明,但对于 Bundle.config 中声明的内容,我使用 Microsoft.AspNet.Web.Optimization.WebForms tagPrefix="webopt" 像这样: 。前者似乎是 MVC 方式,后者是 webforms 方式。我还没有彻底测试过缩小的所有可能性。使用两个不同的优化程序集并非 DRY。
  • 谢谢。我同意它不是 DRY - 我想了解哪个是最好的并且只使用一个。
  • BundleReference 在正常渲染时实际上调用了Styles.Render。但是,它也支持设计模式,因此样式将在那里正确应用,而Styles.Render 则不会。由于 MVC 项目没有设计模式,因此不适用于那里。如果您不关心 WebForms 项目中的设计模式,那么您可以根据需要切换到 Styles.Render

标签: asp.net webforms asp.net-4.5


【解决方案1】:

这很大程度上取决于您是更喜欢使用代码还是使用标记,但每种方法都有一些特定于该方法的优点。

对于 bundle.config,实际上只有一个好处,但它是一个很大的好处。通过使用它,您可以管理捆绑包,而无需完全接触代码。这意味着您可以在不重新编译的情况下进行更改,从而更轻松地进行快速部署。此外,这意味着最熟悉应该捆绑的文件的前端开发人员可以定义捆绑包,而无需使用任何后端代码。

但是,您可以在 Bundle.config 中指定的内容有很多限制。例如,您不能指定要应用于单个项目或捆绑包的任何自定义转换。您可以设置的唯一捆绑属性是PathCdnPathCdnFallbackExpression。您不能设置 OrdererEnableFileExtensionReplacements 属性。您无法包含包含所有子目录的目录(就像您可以使用 IncludeDirectory 方法一样)。基本上,有很多功能只能通过后端代码使用。当然,您可以通过使用后端代码检索在 bundle.config 中定义的捆绑包,然后进行操作来设置其中的很多内容。但如果你打算这样做,你也可以在后端创建捆绑包。

我个人的理念是使用 Bundle.config,除非我需要对包做一些不可能的事情。但是我敢肯定,一些完全合理的人会不同意这一点。

就Web Forms项目的默认VS模板而言,我猜这只是为了证明这两个选项都可用,因为它在BundleConfig.cs中没有做任何在Bundle中也不能做的事情。配置。

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 2017-10-17
    • 1970-01-01
    • 2013-03-18
    • 2015-02-07
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    相关资源
    最近更新 更多