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: ; 
..... 

打破你的捆绑,你可以隔离问题。

希望这可以帮助某人。