2013-09-25 64 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