gpt4 book ai didi

c# - ASP.NET MVC 4 捆绑 - Debug模式下的单个文件 URL

转载 作者:行者123 更新时间:2023-11-30 14:13:12 25 4
gpt4 key购买 nike

问题:

在 ASP.NET MVC 4.5 中完成的 HTML5 离线应用程序中,我们使用框架的 built-in feature 捆绑和缩小样式和脚本。 .一切都与页面本身配合良好,但写入缓存 list 时,(因为我们正在编写它)它总是只发出捆绑的 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")

这对页面很有效,当 debugtrue 时发出单独的 js 文件,当 debug

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>

缓存 list

这就是我们将脚本包含到我们的 CacheManifest

中的方式
@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/Scripts")

debug=truedebug=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

最佳答案

The MSDN documentation讨论了某个 Scripts.RenderFormat 方法,它看起来很适合做我们想做的事情。但 intellisense 提示此 RenderFormat 方法在当前引用的 System.Web.Optimization 版本中不存在。

但是,(再次)感谢 Google,this answer here on SO正在解释这个 RenderFormat 方法实际上包含在下一个版本的 alpha 版本中。和 comment on that answer链接到解释我们如何安装它的页面:

PM> Install-Package Microsoft.AspNet.Web.Optimization -Pre

在这个版本中,Cache-Manifest 可以更改为:

@System.Web.Optimization.Scripts.RenderFormat("{0}","~/bundles/Scripts")

我们现在让缓存 list 在 debug=true 时发出单个文件。

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

关于c# - ASP.NET MVC 4 捆绑 - Debug模式下的单个文件 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14881014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com