我正在使用与.NET Framework 4的MVC 3捆绑和缩小。创建 BundleConfig.cs 并放在App_Data
文件夹下。
从 Global.asax 文件的BundleConfig.RegisterBundles(BundleTable.Bundles);
中调用Application_Start()
从主文件我打电话
<% Styles.Render("~/Content/themes/base"); %>
<% Scripts.Render("~/Scripts","~/Scripts/Controllers","~/Scripts/Views");%>
标题标签上的
但是,CSS未按预期呈现且jQuery未被识别为Scripts.Render
,则无法按预期工作。
我的 BundleConfig.cs 类定义如下所示......
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/themes/base").Include(
"~/Content/themes/base/Blueprint-Liquid.css",
"~/Content/themes/base/ex.css",
"~/Content/themes/base/exNav.css",
"~/Content/themes/base/ie.css",
"~/Content/themes/base/jquery-ui-1.8.14.custom.css",
"~/Content/themes/base/jquery.qtip.css",
"~/Content/themes/base/reset.css",
"~/Content/themes/base/Site.css",
"~/Content/themes/base/structure-fixed.css",
"~/Content/themes/base/structure-fluid.css",
"~/Content/themes/base/tipsy.css",
"~/Content/themes/base/typography.css",
"~/Content/themes/base/ui.jqgrid.css")
);
bundles.Add(new ScriptBundle("~/Scripts/Controllers").Include(
"~/Scripts/Controllers/ProjectController.js",
"~/Scripts/Controllers/RequestController.js",
"~/Scripts/Controllers/SystemController.js")
);
bundles.Add(new ScriptBundle("~/Scripts/Views").Include(
"~/Scripts/Views/ProjectView.js",
"~/Scripts/Views/RequestView.js",
"~/Scripts/Views/SystemView.js")
);
bundles.Add(new ScriptBundle("~/Scripts").Include(
"~/Scripts/Dialog.js",
"~/Scripts/EX.Computing.js",
"~/Scripts/exNav.js",
"~/Scripts/grid.locale-en.js",
"~/Scripts/jquery-1.6.2.js",
"~/Scripts/jquery-1.6.2.min.js",
"~/Scripts/jquery-ui-1.8.14.js",
"~/Scripts/jquery-ui-1.8.14.min.js",
"~/Scripts/jquery.jqGrid.fluid.js",
"~/Scripts/jquery.jqGrid.min.js",
"~/Scripts/jquery.jqGrid.src.js",
"~/Scripts/jquery.qtip.js",
"~/Scripts/jquery.tipsy.js",
"~/Scripts/jquery.jquery.unobtrusive-ajax.js",
"~/Scripts/jquery.jquery.unobtrusive-ajax.min.js",
"~/Scripts/jquery.jquery.validate-vsdoc.js",
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.js",
"~/Scripts/jquery.validate.unobtrusive.min.js",
"~/Scripts/json2.js",
"~/Scripts/Labels.js",
"~/Scripts/modernizr-1.7.js",
"~/Scripts/SessionTimeOut.js",
"~/Scripts/underscore.js")
);
BundleTable.EnableOptimizations = true;
}
我想知道我错过了什么?任何帮助都会受到赞赏!
谢谢, 拉马尼
答案 0 :(得分:2)
当我开始使用Bundling和Minification时,我不确定它是否适用于MVC3,以及 发现它没有任何问题。我想在这里分享我的代码,以便帮助某人。
using System.Web.Optimization;
namespace Ex.Computing
{
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
"~/Content/themes/base/reset.css",
"~/Content/themes/base/Blueprint-Liquid.css",
"~/Content/themes/base/jquery-ui-1.8.23.custom.css",
"~/Content/themes/base/typography.css",
"~/Content/themes/base/eXNav.css",
"~/Content/themes/base/structure-fluid.css",
"~/Content/themes/base/eX.css",
"~/Content/themes/base/ui.jqgrid.css",
"~/Content/themes/base/Site.css",
"~/Content/themes/base/jquery.qtip.css"
)
);
bundles.GetBundleFor("~/Content/themes/base/css").Orderer = new AppCssOrderer();
var bootstrapOrdering = new BundleFileSetOrdering("bootstrap");
bundles.Add(new ScriptBundle("~/Scripts/js").Include(
"~/Scripts/eXNav.js",
"~/Scripts/jquery-1.8.1-vsdoc.js",
"~/Scripts/jquery-1.8.1.js",
"~/Scripts/jquery-ui-1.8.23.custom.min.js",
"~/Scripts/Labels.js",
"~/Scripts/Dialog.js",
"~/Scripts/SessionTimeOut.js",
"~/Scripts/jquery.qtip.js",
"~/Scripts/json2.js",
"~/Scripts/jquery.watermark.min.js",
"~/Scripts/grid.locale-en.js",
"~/Scripts/jquery.jqGrid.src.js",
"~/Scripts/jquery.jqGrid.fluid.js",
"~/Scripts/jquery.validate.min.js",
"~/Scripts/jquery.validate.unobtrusive.min.js",
"~/Scripts/Computing.js",
"~/Scripts/Controllers/ProjectController.js",
"~/Scripts/Controllers/RequestController.js",
"~/Scripts/Controllers/SystemController.js",
"~/Scripts/Views/ProjectView.js",
"~/Scripts/Views/RequestView.js",
"~/Scripts/Views/SystemView.js"
)
);
bundles.GetBundleFor("~/Scripts/js").Orderer = new AppJsOrderer();
BundleTable.EnableOptimizations = true;
}
}
public class AppCssOrderer : IBundleOrderer
{
public IEnumerable<System.IO.FileInfo> OrderFiles(BundleContext context,
IEnumerable<System.IO.FileInfo> files)
{
// return files.OrderBy(f => f.Name == "eyNav.css" ? -1 : 1);
if (context == null)
throw new ArgumentNullException("context");
if (files == null)
throw new ArgumentNullException("files");
return files;
}
}
public class AppJsOrderer : IBundleOrderer
{
public IEnumerable<System.IO.FileInfo> OrderFiles(BundleContext context,
IEnumerable<System.IO.FileInfo> files)
{
// return files.OrderBy(f => f.Name == "eyNav.css" ? -1 : 1);
if (context == null)
throw new ArgumentNullException("context");
if (files == null)
throw new ArgumentNullException("files");
return files;
}
}
}
答案 1 :(得分:1)
欢迎来到我们的俱乐部:Microsoft ASP.NET Web Optimization Framework 1.0.0 debug mode error
我用下一个代码解决了这个问题,但我不喜欢这个解决方案:
BundleTable.EnableOptimizations = true;