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
谢谢!
答案 0 :(得分:3)
不,您不需要提供.min
文件,捆绑商也不会创建该版本(至少在文件夹中看不到)。
不同之处在于此。假设您的脚本文件夹中同时包含jquery-1.9.1.js
和jquery-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