2013-09-25 87 views
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> 

回答

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。绑定引擎将根据您的应用程序是以Debug还是Release模式运行而使用正确的文件。

+0

奏效。谢谢。我想我能得到的调试版本,并只适用'在Release模式'新JsMinify()。我想它一起忽略了.debug.js。 – Vitalik