[英]ASP.NET MVC {version} wildcard in script bundle selects debug version?
我正在嘗試使用從NuGet導入的knockout-3.2.0.js
,其中包括knockout-3.2.0.js
和knockout-3.2.0.debug.js
。 我添加了一個新的捆綁包
bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
"~/Scripts/knockout-{version}.js"));
但是,當我檢查該網頁時,發現裝入的捆綁包是knockout-3.2.0.debug.js
。
我閱讀了以下問題
這似乎對回答我的問題沒有特別幫助。
這是因為腳本文件夾中存在JS的調試版本。
如果查看其他js,則不存在調試文件,因此它將使用jquery.1.7.0.js,但是如果復制粘貼jquery.1.7.0.debug.js,則它將選擇該文件。
如果要使用淘汰賽3.2.0.js,請刪除js的調試版本。
您也可以轉到web.config
<system.web>
<compilation debug="false" targetFramework="4.0" />
// set debug="true" or debug="false"
如果設置debug = true,則選擇debug version;如果debug為false,則選擇其他版本的js。
在Visual Studio中,您可以具有多個解決方案配置(默認情況下,在Standard欄中,這是Visual Studio主菜單下的vars按鈕的下拉列表)。 默認情況下,在創建新項目(或解決方案)時,您有2種可用配置:調試和發布。 (您也可以在Build> Configuration Manager ...菜單中訪問此權限)。
構建解決方案或項目(或發布時)時,必須選擇以下配置之一:
如果選擇“調試”,則將使用調試信息編譯項目,以便可以將其附加到VS調試器,並將運行的代碼與源文件相關聯。 除此之外,還會發生其他一些事情,例如,捆綁程序將使用JS文件的調試版本,而不是生成縮小的捆綁程序。 其背后的想法是,如果您使用此配置,那是因為您要調試代碼。
如果選擇發布,則將在編譯項目時不包含調試信息。 捆綁包使用腳本的普通或縮小版本,每個捆綁包都轉換為單個縮小文件
因此,您需要做的就是選擇正確的配置。 考慮到這會影響js捆綁和程序集的創建。 有時,程序集中的代碼甚至可以具有更好的性能,因為發行版將進行一些優化,這些優化在程序集的調試版本中沒有應用,以允許對其進行調試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.