15

當我運行我的ASP.NET MVC 4應用程序版本模式時,捆綁軟件仍在輸出未分離和單獨的js文件,而不是捆綁並將其縮小爲更少的捆綁JavaScript文件。以發佈模式運行ASP.NET MVC 4應用程序不會捆綁並縮小js文件

任何想法?

僅供參考,釋放配置:

<?xml version="1.0"?> 
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    </system.web> 
</configuration> 
+0

[也許這會幫助你](http://stackoverflow.com/a/11956652/703607) – Verkion 2013-03-01 15:26:05

回答

35

由於aleyush的意見,即Web.release.config是發佈應用程序時僅使用,並且未在本地運行它時,我能夠通過添加以下行BundleConfig.cs文件進行修復:

#if !DEBUG 
BundleTable.EnableOptimizations = true; 
#endif 

由於調試模式將定義DEBUG常量,並且在發佈模式期間未定義,此行僅在發佈模式期間執行。 (您可以通過設置斷點測試)

+0

謝謝。這個答案應該是可以接受的。 – Hooch 2014-02-13 19:24:54

+0

歡呼聲,效果不錯 – FutuToad 2014-04-10 10:32:50

2
  1. 沒有被捆綁,或者如果調試設置爲true在Web.config文件中,這樣就可以輕鬆地調試輸出精縮。

  2. 如果你想覆蓋此,只是將下面的代碼行添加到您的BundleConfig文件:

    BundleTable.EnableOptimizations = TRUE;

+0

調試屬性設置爲false:RemoveAttributes(調試) – FutuToad 2013-03-02 22:53:28

+6

Web.release.config僅在您發佈時使用你的網頁。 http://blogs.msdn.com/b/webdev/archive/2010/10/26/asp-net-web-projects-web-debug-config-amp-web-release-config.aspx – aleyush 2013-03-04 07:57:08

0

這爲我工作

<system.web> 
    <compilation debug="false" /> 
</system.web> 
+0

VS會提示你是否要在運行時啓用調試,選擇否,這將工作! – rkawano 2015-12-02 00:55:26

0

我的包太大了。我不得不把它分解成更小的部分,它工作得很好。縮小後可能有些變量衝突。

,就把這行只在測試你的bundleconfig結束......

BundleTable.EnableOptimizations = true; 

如果打開縮小的文件,你會看到這樣的事情。

/* Minification failed. Returning unminified contents. 
    (5079,1-2): run-time warning JS1195: Expected expression: . 
    (5080,18-19): run-time warning JS1004: Expected ';': : 
    (5084,18-19): run-time warning JS1004: Expected ';': : 
    (5091,18-19): run-time warning JS1004: Expected ';': : 
    (5095,20-21): run-time warning JS1197: Too many errors. The file might not be a JavaScript file: ; 
..... 

打破你的捆綁,你可以隔離問題。

希望這可以幫助某人。