ASP.NET MVC 4 ScriptBundle 返回空
Posted
技术标签:
【中文标题】ASP.NET MVC 4 ScriptBundle 返回空【英文标题】:ASP.NET MVC 4 ScriptBundle returns empty 【发布时间】:2012-09-16 03:53:49 【问题描述】:具体来说,我正在尝试在 MVC 4 中使用已经缩小的脚本创建一个 ScriptBundle,并返回这个相同的 Bundle,无论项目是否处于调试状态。
我的 Web 项目引用了 MVC Telerik Grid NuGet 包。在那个包中,Telerik 只提供了缩小的 JS 文件。捆绑代码如下。
// telerik scripts
bundles.Add(new ScriptBundle("~/scripts/bundles/telerik").Include(
"~/Scripts/2012.1.214/telerik.common.min.js",
"~/Scripts/2012.1.214/telerik.textbox.min.js",
"~/Scripts/2012.1.214/telerik.calendar.min.js",
"~/Scripts/2012.1.214/telerik.datepicker.min.js",
"~/Scripts/2012.1.214/telerik.grid.min.js",
"~/Scripts/2012.1.214/telerik.grid.filtering.min.js"));
其他 ScriptBundle 运行良好,但是当我的项目尝试引用此捆绑包时,请求显示为:scripts/bundles/telerik?v=
Returning nothing。
如果我设置BundleTable.EnableOptimizations = true
,那么它确实会返回 ScriptBundle 并引用特定版本,但是这种解决方案是不可接受的。
我不想强制设置 BundleTable.EnableOptimizations = true
,因为我希望所有其他 Bundle 在适当的时候返回非缩小版本。
任何人都有类似的经历,如果有,解决方案是什么?
【问题讨论】:
【参考方案1】:我想你也有同样的问题,请看这个链接:mvc4 bundler not including .min files
将 .min.js 重命名为 .js 或执行以下操作:
public static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
if (ignoreList == null)
throw new ArgumentNullException("ignoreList");
ignoreList.Clear();
ignoreList.Ignore("*.intellisense.js");
ignoreList.Ignore("*-vsdoc.js");
ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
//ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled);
ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled);
【讨论】:
这似乎有效。我确实添加了 Clear() 方法调用,以便在 Ignore() 调用之前清除默认值。谢谢!以上是关于ASP.NET MVC 4 ScriptBundle 返回空的主要内容,如果未能解决你的问题,请参考以下文章