1

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);
    }

它在调试中工作正常 - 不在发布模式下

谢谢!

4

2 回答 2

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.jsRelease 模式将使用它并缩小和捆绑它。

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

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

其他相关阅读/帖子:

Scripts.Render 使用过时的 javascript 文件

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

于 2013-03-07T16:38:08.163 回答
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

于 2013-03-07T09:24:56.310 回答