CSS / Javascript缩小和捆绑在MVC中究竟是如何工作的?

时间:2014-02-16 08:04:29

标签: asp.net-mvc

我对MVC如何处理CSS和Javascript感到有些困惑,我有几个问题。

每当我创建一个默认的MVC(5)应用程序时,我发现已经添加了许多CSS和Javascript库,包括普通和缩小版本。

当我查看BundleConfig类时,我看到常规文件被捆绑在一起,但缩小版本不是。

实际使用缩小版本的时间是什么时候?当我调试站点,甚至将其部署到服务器时,我从未看到这些被使用过。这是我必须改变自己的东西,还是有这样的设置?

另外,我是否需要保持这些文件的常规版本和缩小版本同步,或者这是MVC可以自动执行的操作吗?

由于

2 个答案:

答案 0 :(得分:1)

<强>捆绑

  

Bundling是ASP.NET 4.5中的一项新功能,可以轻松实现组合   或将多个文件捆绑到一个文件中。你可以创建CSS,   JavaScript和其他捆绑包。文件越少意味着HTTP请求越少   这可以提高首页加载性能。

<强>缩小

  

Minification执行各种不同的代码优化   脚本或css,例如删除不必要的空格和注释   并将变量名缩短为一个字符。

您的问题?

  

当我查看BundleConfig类时,我看到了常规文件   捆绑在一起,但缩小版本不是。

答案:

您不需要将缩小版本包含到bundle.B'cos捆绑本身在您的应用程序状态发布时执行此操作(缩小)。默认调试模式将使用非缩小版本。

您的问题?

  

实际使用缩小版本的时间是什么时候?当我调试网站时,   甚至将它部署到服务器,我从来没有看到这些被使用。这是   我必须改变自己的一些东西,或者有这样的设置?

答案:

缩小版将在app处于生产(或发布模式)时使用。 您无需在此处执行任何操作。当您将应用程序的状态更改为发布时,它会自动执行。

您的问题?

  

另外,我是否需要保留这些的常规和缩小版本   同步的文件,还是MVC可以自动执行的操作?

答案:

你不需要在这里做任何事情。它由框架自动完成。

重要提示:

您不需要将缩小的文件添加到bundles.B'cos捆绑文件将在应用程序状态处于发布模式时自动缩小。请阅读以下主题以获取更多信息。

Bundle vs Minification,Which one is the best

答案 1 :(得分:0)

默认情况下,如果您的应用程序是使用“调试”选项构建的,则捆绑和缩小将采用未经分类的版本。如果站点是在发布模式下构建的,则会在可用的情况下获取缩小版本的文件。

最重要的是,您可以通过

自行强制缩小
BundleTable.EnableOptimizations = true;

在您的BundleConfig课程中。这样可以为您缩小所有捆绑包。要仅在版本中进行此缩小,我通常会执行编译条件:

#if !DEBUG
     BundleTable.EnableOptimizations = true;
#endif

建议您阅读已在评论中链接的文档