【问题标题】:When to use bundles in MVC4何时在 MVC4 中使用捆绑包
【发布时间】:2012-08-15 05:53:18
【问题描述】:

在 MVC 4 中,我可以使用 @Styles.Render("~/Content/css") 调用定义 BundleConfig 文件的 CSS 文件包,而不是直接调用 CSS。

我们什么时候应该使用 bundle 而不是直接调用文件? 当我们有各种 CSS 文件来简化代码时,我清楚地理解它。但是如果只有一个 CSS 文件,我们应该使用 bundle 还是直接调用呢?

【问题讨论】:

标签: c# asp.net-mvc asp.net-mvc-4 bundles asp.net-optimization


【解决方案1】:

合并多个文件只是捆绑的各种有趣功能之一。

例如,捆绑包允许您应用各种转换(例如,LESS 用于 CSS;缩小;混淆用于 JS;等等)。

另一个不错的功能是它内置的缓存机制。这可确保客户端仅检索一次特定版本的捆绑包。对您的捆绑包所做的任何更改都将在下一次请求时由客户接收。

Bundles 也可用于 CSS 或 JS 文件的运行时交换。例如,在您的开发环境中提供 JS 框架的调试版本,同时在您的生产环境中提供缩小版本。可以使用您喜欢的任何自定义逻辑在您的 Global.asax.cs 中进行切换(例如 Web.config 参数;编译器条件等)

【讨论】:

  • 关于转换,比如缩小,是否默认应用?
  • 如果您在 BundleCollection 上调用 EnableDefaultBundles()(例如 BundleTable.Bundles.EnableDefaultBundles(); ),那么它将自动包含所有 JS 和 CSS 文件并缩小它们。如果您手动创建自己的包,则默认情况下不会应用任何转换。顺便说一句,如果您的项目包含预先缩小的 JS 文件 (*.min.js),那么 BundleTable 将在禁用调试时自动选择这些文件。您可以使用 BundleTable.EnableOptimizations 属性显式启用或禁用此功能。
猜你喜欢
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 2012-06-06
相关资源
最近更新 更多