1

我定义了以下捆绑包:

var knockoutBundle = new ScriptBundle("~/bundles/knockout.js")
.Include("~/Scripts/knockout-{version}.debug.js");

但是,当应用程序与它一起发布时,debug="false"它会生成以下 HTML

<script src="/bundles/jquery.js?v=Cr8InFU-vbrPmGYYWNIXAturiBR7q9wkkgxep6VV4EU1"></script>
<script src="/bundles/bootstrap.js?v=GTjK0zIjX1_Mx7GIKofGDUgYcnSrCJvTYHNkjkMKWC01"></script>
<script src="/bundles/knockout.js?v="></script>

并且淘汰赛的链接是空的(还要注意没有 v= 值)

如果我将调试更改为true它会生成这个并且工作正常:

<script src="/Scripts/jquery-2.0.3.js"></script>
<script src="/Scripts/jquery.cookie.js"></script>
<script src="/Scripts/bootstrap.js"></script>
<script src="/Scripts/knockout-2.3.0.debug.js"></script>
4

1 回答 1

3

摆脱.debug捆绑定义中的后缀:

var knockoutBundle = new ScriptBundle("~/bundles/knockout.js")
    .Include("~/Scripts/knockout-{version}.js");

现在在调试模式下运行时,这将生成:

<script src="/Scripts/knockout-2.3.0.debug.js"></script>

在发布模式下运行时:

<script src="/bundles/knockout.js?v=VqZ0J9f3e7QvvRrMNGAzEkpXKvaJMNRA8LqjNIoUGqs1"></script>

显然,这假设您同时拥有knockout-2.3.0.debug.jsknockout-2.2.0.js在您的 Scripts 文件夹中。捆绑引擎将根据您的应用程序是在调试还是发布模式下运行来使用正确的文件。

于 2013-09-25T17:22:20.257 回答