ASP.NET中的基本捆绑,缩小

时间:2013-03-07 09:18:23

标签: asp.net-mvc bundling-and-minification

ASP.NET MVC 4.0应用程序 - Visual Studio 2012

我无法在发布模式下进行捆绑和缩小。

我基本的不理解是:

我是否必须预先提供*。 MIN .css,*。 MIN .js文件,还是应该自行缩小文件? (即:我提供了一个mcimagemanager.js和VS制作了一个mcimagemanager.MIN.js)???

这是一个代码片段 - 在Global.asax中调用:

 public static void RegisterBundles(BundleCollection bundles)
    {
       var im = new ScriptBundle("~/bundles/MCImageManager").Include(
                    "~/Scripts/tinymce/plugins/imagemanager/js/mcimagemanager.js"
                    );
        bundles.Add(im);
    }

它在Debug中运行良好 - 而不是在Release-mode

谢谢!

2 个答案:

答案 0 :(得分:3)

不,您不需要提供.min文件,捆绑商也不会创建该版本(至少在文件夹中看不到)。

不同之处在于此。假设您的脚本文件夹中同时包含jquery-1.9.1.jsjquery-1.9.1.min.js

调试模式将使用jquery-1.9.1.js作为源脚本,不会缩小或捆绑它,因为在调试模式下禁用整个捆绑/缩小(尽管你可以覆盖这个)。

发布模式将使用jquery-1.9.1.min.js并将其与该捆绑包的其他脚本捆绑在一起。

如果您只有一个文件jquery-1.9.1.js,则发布模式将使用它并缩小并捆绑它。

调试模式不会使用.min个文件。因此,如果使用通配符包含脚本目录的所有文件,则不会包含.min文件。

调试模式,如果查看呈现的HTML,将单独引用包中的所有脚本文件。在发布模式下,每个包只有一个脚本引用(带有用于版本控制的查询字符串)。

其他相关阅读/帖子:

Scripts.Render using outdated javascript file

Force ASP.Net MVC Bundle to render the javascript files in a certain order

答案 1 :(得分:1)

捆绑和缩小框架也会缩小本身。所以你只需要提供简单的JavaScript / CSS文件。它一方面处理文件本身,另一方面它处理视图中的注册,例如:@Scripts.Render("~/bundles/jquery")。所以它“知道”视图中需要包含哪些文件,天气是“正常”或“最小”版本。

有关该主题的更多信息,您可以在这个精彩的练习中找到:http://msdn.microsoft.com/en-us/vs11trainingcourse_aspnetandvisualstudio_topic5.aspx

然而,这可能是面向MVC的应用程序的更好资源:http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification