ASP.NET中的基本绑定、最小化



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

我无法使绑定和缩小在发布模式下工作。

我的基本不理解是:

我必须提供*吗最小值.css,*MIN.js文件,还是VS应该自己缩小文件?(即:我提供了一个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);
    }

它在调试模式下工作良好,而不是在发布模式下

谢谢!

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

不同之处在于。假设您的脚本文件夹中同时有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,将单独引用捆绑包中的所有脚本文件。在Release模式下,每个bundle将只有一个脚本引用(带有用于版本控制的查询字符串(。

其他相关阅读/帖子:

脚本。使用过时的javascript文件渲染

强制ASP.Net MVC Bundle以特定顺序呈现javascript文件

捆绑和缩小框架也会缩小自己。所以您只需提供简单的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

最新更新