【发布时间】:2013-01-30 14:52:59
【问题描述】:
问题:
在 ASP.NET MVC 4.5 中完成的 HTML5 离线应用程序中,我们使用框架的 built-in feature 捆绑和缩小样式和脚本。页面本身一切正常,但要写入缓存清单,其中(因为我们正在编写它)它总是只发出捆绑的 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 标记
我们将它包含在我们的_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>
debug=false中的输出
<script src="/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1"></script>
缓存清单
这就是我们如何将脚本包含到我们的CacheManifest
@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/Scripts")
在debug=true 和debug=false 中输出
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
我们想要什么?
我们想知道是否有办法让 Cache-Manifest 像这样输出:
debug=true中的输出
/Scripts/ScriptOne.js
/Scripts/ScriptTwo.js
/Scripts/ScriptThree.js
debug=false中的输出
/bundles/Scripts?v=B0_RvAM_5ifnREcGnNQ3FO8qQp4vyLOdtCUJ-2mXSuA1
【问题讨论】:
标签: c# .net asp.net-mvc razor asp.net-mvc-4