C# ASP.NET MVC 4绑定-调试模式下的单个文件URL 问题:

C# ASP.NET MVC 4绑定-调试模式下的单个文件URL 问题:,c#,.net,asp.net-mvc,razor,asp.net-mvc-4,C#,.net,Asp.net Mvc,Razor,Asp.net Mvc 4,在ASP.NETMVC4.5中完成的HTML5离线应用程序中,我们使用框架的。一切都可以很好地处理页面本身,但对于写入缓存清单,在缓存清单中(因为我们正在编写它),它总是只发出绑定的URL 因此,我们无法在脱机模式下调试JavaScript,因为单个调试js文件没有进入应用程序缓存 代码: 注册债券 这就是我们的BundleConfig.RegisterBundles的外观: // For more information on Bundling, visit http://go.mic

在ASP.NETMVC4.5中完成的HTML5离线应用程序中,我们使用框架的。一切都可以很好地处理页面本身,但对于写入缓存清单,在缓存清单中(因为我们正在编写它),它总是只发出绑定的URL

因此,我们无法在脱机模式下调试JavaScript,因为单个调试js文件没有进入应用程序缓存

代码: 注册债券 这就是我们的
BundleConfig.RegisterBundles
的外观:

    // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254725
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new ScriptBundle("~/bundles/Scripts").Include(
                   "~/Scripts/*.js"
                   ));
    }
HTML标记 我们将其包含在
\u Layout.cshtml
页面中,如下所示:

@System.Web.Optimization.Scripts.Render("~/bundles/Scripts")
这对页面很有效,当
debug
true
时发出单个js文件,当
debug
false
时发出一个捆绑文件

debug=true中输出

<script src="/Scripts/ScriptOne.js"></script>
<script src="/Scripts/ScriptTwo.js"></script>
<script src="/Scripts/ScriptThree.js"></script>
<script src="/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1"></script>
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
/Scripts/ScriptOne.js
/Scripts/ScriptTwo.js
/Scripts/ScriptThree.js
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
缓存清单 这就是我们如何将脚本包含到我们的
CacheManifest

@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/Scripts")
debug=true
debug=false
中输出

<script src="/Scripts/ScriptOne.js"></script>
<script src="/Scripts/ScriptTwo.js"></script>
<script src="/Scripts/ScriptThree.js"></script>
<script src="/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1"></script>
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
/Scripts/ScriptOne.js
/Scripts/ScriptTwo.js
/Scripts/ScriptThree.js
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
我们想要什么? 我们想知道是否有一种方法可以让缓存清单像这样输出:

@System.Web.Optimization.Scripts.Render("~/bundles/Scripts")
debug=true中输出

<script src="/Scripts/ScriptOne.js"></script>
<script src="/Scripts/ScriptTwo.js"></script>
<script src="/Scripts/ScriptThree.js"></script>
<script src="/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1"></script>
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
/Scripts/ScriptOne.js
/Scripts/ScriptTwo.js
/Scripts/ScriptThree.js
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
debug=false中输出

<script src="/Scripts/ScriptOne.js"></script>
<script src="/Scripts/ScriptTwo.js"></script>
<script src="/Scripts/ScriptThree.js"></script>
<script src="/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1"></script>
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
/Scripts/ScriptOne.js
/Scripts/ScriptTwo.js
/Scripts/ScriptThree.js
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
讨论了某个
Scripts.RenderFormat
方法,该方法看起来很适合做我们想做的事情。但intellisense抱怨当前引用的
System.Web.Optimization
版本中不存在此
RenderFormat
方法

但是,感谢谷歌(再次)解释说,这个
RenderFormat
方法实际上已经包含在下一版本的alpha版本中。链接到说明如何安装的页面:

PM>安装软件包Microsoft.AspNet.Web.Optimization-预安装
使用此版本,
缓存清单
可以更改为:

@System.Web.Optimization.Scripts.RenderFormat("{0}","~/bundles/Scripts")
现在,我们让缓存清单在
debug=true
时发出各个文件

显然,MSDN文档与当前的稳定版本不同步