0

我们最近将 MVC 项目升级到 Visual Studio 2013 和 ASP.NET 4.5.1 以及包含某些通配符的包,例如:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.min.js"));

已停止正确编译。它似乎会影响在“.js”之前包含更多字符的任何通配符,这通常是最小的。

我意识到捆绑的一部分是缩小,所以某些意见不是必需的,但这就是目的吗?我什么都没读过这是发行说明。回去修复需要付出很多努力,因为有时我们没有这些脚本的常规版本。我们正在遇到其他外卡问题,但这似乎是一个大问题。我还没有看到其他人发布此问题,所以我很想知道是否有人注意到它,或者它是否是我们在升级过程中遇到的配置问题。

4

1 回答 1

1

您根本不应该min在捆绑定义中添加前缀。

捆绑框架遵循几个常见的约定,例如:

当“FileX.min.js”和“FileX.js”存在时选择“.min”文件发布。选择非“.min”版本进行调试。忽略仅由 IntelliSense 使用的“-vsdoc”文件(例如 jquery-1.7.1-vsdoc.js)。

确保在 web.config 中启用了优化:

<system.web>
    <compilation debug="false" />
    <!-- Lines removed for clarity. -->
</system.web>

或在代码中覆盖:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                 "~/Scripts/jquery-{version}.js"));

    // Code removed for clarity.
    BundleTable.EnableOptimizations = true;
}

并且 MVC 将生成带有缩小的 jquery 文件的捆绑链接,例如:

<script src="/bundles/jquery?v=OCFAn1NcaUrZ5VLi0Kt8lefDjHOF7mvtdw-2FUpZjJ01"></script>

更新:

似乎这在早期版本中也不起作用。有通过修改IgnoreList的解决方法BundleCollection

https://stackoverflow.com/a/12005272/186822

于 2013-10-26T01:54:04.787 回答