2017-07-06 98 views
0

我用Bundleconfig.cs捆绑我的JavaScript文件如下:调试捆绑和版本JavaScript文件

bundles.Add(new ScriptBundle("~/bundles/resultscripts").Include(
      "~/Scripts/spectrum.js", 
       "~/Scripts/notify.js", 
       "~/Scripts/spin.min.js")); 
    BundleTable.EnableOptimizations = true; 

然后在我的.cshtml文件,我有以下几点:

@Scripts.Render("~/bundles/resultscripts"); 

这使得在Chrome中为:

<script src="/bundles/resultscripts?v=3ozhz2yni5K8Is0g9QoONh_MkoivcBzooVIUD-a0Ngw1"></script> 

然后我就下的System.Web在我的web.config以下(不知道如何这很重要):

<compilation debug="true" targetFramework="4.5.2" /> 

这很好,因为它允许捆绑版本控制。然而,我的一些JavaScript似乎并没有被解雇,而在Chrome中,我现在不能再在我的个人JavaScript文件中放置断点。或者更清楚一点,我找不到notify.js。我猜这是因为捆绑正在被缩小。

如果我设置BundleTable.EnableOptimizations = false;我的JavaScript文件呈现,但不再版本化。

我想知道是否有人可以将我指向正确的方向,以便在捆绑版本时可以找到单个文件?

我检查了这个:Script bundles not rendering individual files in debug,并使用相同的语法,但我的文件没有得到单独呈现。

+0

绑定后,你不能轻易调试的JavaScript代码。这是一种预期的行为。你关心什么?你看到任何脚本错误? – Win

+0

感谢您的回复如此之快:我应该更加清楚:我担心的是,当我将BundleTable.EnableOptimizations设置为true时,我的一些脚本不会触发。当我将它设置为false时,一切正常。调试问题是我可以忍受的。 – kickinchicken

回答

0

您能否使用.*看到有什么不同?

bundles.Add(new ScriptBundle("~/bundles/resultscripts").Include(
    "~/Scripts/spectrum.*", 
    "~/Scripts/notify.*", 
    "~/Scripts/spin.*")); 

BundleTable.EnableOptimizations = true; 
+0

刚刚尝试过,但没有奏效。 – kickinchicken

+0

你有spectrum.min.js和notify.min.js文件吗? – Win

+0

如果是这样,你可以将它们添加为'.Include(“〜/ Scripts/spectrum.min.js”,“〜/ Scripts/notify.min.js”,“〜/ Scripts/spin.min.min.js” ));' – Win

0

我希望下面的语句将有助于你:

时,我们是不是在调试编译并没有关掉EnableOptimizations功能,MVC将我们捆绑这些文件合并,压缩(缩小)他们和输出只有一个脚本标签

来源:https://stackoverflow.com/a/21271866/3397630