调试绑定的和版本化的javascript文件
我使用Bundleconfig.cs将javascript文件打包如下:调试绑定的和版本化的javascript文件,javascript,c#,asp.net-mvc,Javascript,C#,Asp.net Mvc,我使用Bundleconfig.cs将javascript文件打包如下: bundles.Add(new ScriptBundle("~/bundles/resultscripts").Include( "~/Scripts/spectrum.js", "~/Scripts/notify.js", "~/Scripts/spin.min.js")); BundleTable.EnableOptimizatio
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>
然后,我的web.config中的system.web下有以下内容不确定这有多重要:
<compilation debug="true" targetFramework="4.5.2" />
这很好,因为它允许包版本控制。然而,我的一些javascript似乎没有启动,当使用Chrome时,我现在不能再在我的单个javascript文件中放置断点。或者更清楚地说,例如,我找不到notify.js。我猜这是因为捆绑正在缩小
如果我设置BundleTable.EnableOptimizations=false;我的javascript文件进行渲染,但不再进行版本控制
我想知道是否有人能为我指出正确的方向,这样我就可以在绑定版本时找到各个文件
我签出了这个:,并且使用了相同的语法,但是我的文件没有单独呈现。您能使用。*并看到任何不同的吗
bundles.Add(new ScriptBundle("~/bundles/resultscripts").Include(
"~/Scripts/spectrum.*",
"~/Scripts/notify.*",
"~/Scripts/spin.*"));
BundleTable.EnableOptimizations = true;
我希望以下声明将对您有所帮助: 当我们不在调试编译中并且没有关闭EnableOptimizations特性时,MVC将把这些文件合并到我们的包中,压缩并缩小它们,只输出一个脚本标记
来源:捆绑后,您无法轻松调试JavaScript代码。这是一种预期的行为。你担心什么?您看到任何脚本错误了吗?感谢您这么快的响应:我应该说得更清楚:我担心的是,当BundleTable.EnableOptimizations设置为true时,我的一些脚本不会启动。当我将其设置为false时,一切正常。调试问题是我可以接受的。你有spectrum.min.js和notify.min.js文件吗?如果有,你可以将它们添加为。Include~/Scripts/spectrum.min.js、~/Scripts/notify.min.js、~/Scripts/spin.min.js;我不确定我是否错过了什么。。。这和我的有什么不同?如果它看到*.min文件,它会使用*.min并将它们捆绑起来。否则,它将变成两个步骤-缩小,然后捆绑。有时候,缩小可能会无意中弄乱文件。所以。。。我有更多的信息:事实证明,有问题的文件是我在Syles.Render块中引用的.css文件。当我把这些拿出来时,一切似乎都很好。你知道为什么会这样吗?