簡體   English   中英

腳本包中的ASP.NET MVC {version}通配符選擇調試版本嗎?

[英]ASP.NET MVC {version} wildcard in script bundle selects debug version?

我正在嘗試使用從NuGet導入的knockout-3.2.0.js ,其中包括knockout-3.2.0.jsknockout-3.2.0.debug.js 我添加了一個新的捆綁包

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

但是,當我檢查該網頁時,發現裝入的捆綁包是knockout-3.2.0.debug.js

我閱讀了以下問題

  1. ScriptBundle(“〜/ scripts / jquery- {version} .js”)中的{version}是什么
  2. MVC4捆綁包中的{version}通配符

這似乎對回答我的問題沒有特別幫助。

這是因為腳本文件夾中存在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM