我对MVC如何处理CSS和Javascript感到有些困惑,我有几个问题。
每当我创建一个默认的MVC(5)应用程序时,我发现已经添加了许多CSS和Javascript库,包括普通和缩小版本。
当我查看BundleConfig类时,我看到常规文件被捆绑在一起,但缩小版本不是。
实际使用缩小版本的时间是什么时候?当我调试站点,甚至将其部署到服务器时,我从未看到这些被使用过。这是我必须改变自己的东西,还是有这样的设置?
另外,我是否需要保持这些文件的常规版本和缩小版本同步,或者这是MVC可以自动执行的操作吗?
由于
答案 0 :(得分:1)
<强>捆绑强>
Bundling是ASP.NET 4.5中的一项新功能,可以轻松实现组合 或将多个文件捆绑到一个文件中。你可以创建CSS, JavaScript和其他捆绑包。文件越少意味着HTTP请求越少 这可以提高首页加载性能。
<强>缩小强>
Minification执行各种不同的代码优化 脚本或css,例如删除不必要的空格和注释 并将变量名缩短为一个字符。
您的问题?
当我查看BundleConfig类时,我看到了常规文件 捆绑在一起,但缩小版本不是。
答案:
您不需要将缩小版本包含到bundle.B'cos捆绑本身在您的应用程序状态发布时执行此操作(缩小)。默认调试模式将使用非缩小版本。
您的问题?
实际使用缩小版本的时间是什么时候?当我调试网站时, 甚至将它部署到服务器,我从来没有看到这些被使用。这是 我必须改变自己的一些东西,或者有这样的设置?
答案:
缩小版将在app处于生产(或发布模式)时使用。 您无需在此处执行任何操作。当您将应用程序的状态更改为发布时,它会自动执行。
您的问题?
另外,我是否需要保留这些的常规和缩小版本 同步的文件,还是MVC可以自动执行的操作?
答案:
你不需要在这里做任何事情。它由框架自动完成。
重要提示:
您不需要将缩小的文件添加到bundles.B'cos捆绑文件将在应用程序状态处于发布模式时自动缩小。请阅读以下主题以获取更多信息。
答案 1 :(得分:0)
默认情况下,如果您的应用程序是使用“调试”选项构建的,则捆绑和缩小将采用未经分类的版本。如果站点是在发布模式下构建的,则会在可用的情况下获取缩小版本的文件。
最重要的是,您可以通过
自行强制缩小BundleTable.EnableOptimizations = true;
在您的BundleConfig
课程中。这样可以为您缩小所有捆绑包。要仅在版本中进行此缩小,我通常会执行编译条件:
#if !DEBUG
BundleTable.EnableOptimizations = true;
#endif
建议您阅读已在评论中链接的文档