0

在 ASP.NET 缩小和捆绑功能中,我有一个脚本可以清理某些内容,并且必须在加载多个独立文件后运行。

所以我创建了一个捆绑包,

new ScriptBundle(virtualPath, cdnPath).Include(
    "~/Scripts/a.js",
    "~/Scripts/cleanup.js",
    "~/Scripts/b.js",
    "~/Scripts/cleanup.js",
    "~/Scripts/c.js",
    "~/Scripts/cleanup.js",
    "~/Scripts/d.js",
    "~/Scripts/cleanup.js",
);

后来我使用 format 渲染它<script defer="defer" src="{0}"></script>,期望清理将在调试和发布模式下按预期发生,在每个脚本的代码之后一次。但是 ASP.NET Bundling 去除了对同一文件路径的重复调用,因此输出为

<script defer="defer" src="/Scripts/a.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/b.js"></script>
<script defer="defer" src="/Scripts/c.js"></script>
<script defer="defer" src="/Scripts/d.js"></script>

在调试模式下,而我的预期,

<script defer="defer" src="/Scripts/a.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/b.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/c.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>
<script defer="defer" src="/Scripts/d.js"></script>
<script defer="defer" src="/Scripts/cleanup.js"></script>

这也告诉我该文件将在捆绑版本中被遗漏,这不是我想要的。

4

1 回答 1

0

在 bundleConfig.cs 中使用以下行:

BundleTable.EnableOptimizations = true;
于 2017-03-05T11:05:08.433 回答