10

具体来说,我正在尝试使用已经缩小的脚本在 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,因为我希望所有其他 Bundles 在适当的时候返回非缩小版本。

任何人都有类似的经历,如果是这样,解决方案是什么?

4

1 回答 1

17

我想你也有同样的问题,请看这个链接:mvc4 bundler not include .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);
    }
于 2012-09-24T17:26:24.693 回答