调试捆绑和版本化的javascript文件

时间:2017-07-06 19:27:10

标签: 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.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文件呈现但不再版本化。

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

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

2 个答案:

答案 0 :(得分:1)

我希望以下声明对您有所帮助:

当我们没有进行调试编译并且没有关闭EnableOptimizations功能时,MVC会将这些文件组合在一起,压缩(缩小)它们并仅输出一个脚本标记

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

答案 1 :(得分:0)

你可以使用.*看看有什么不同吗?

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

BundleTable.EnableOptimizations = true;